圏論プログラミング言語 CPLをMacbookで使う
cabal get CPLで、Macbookに圏論プログラミング言語 CPL:Categorical Programming Languageをインストールしました。CPL言語については、以下がわかりやすいです。
今回インストールしたのは、CPLのHaskell実装です。
CPLは、萩野さんという日本人が開発した言語です。
萩野さんがエディンバラ大学に提出されたCPL言語を取り扱った博士論文です。
Macbookへのインストール: 参考にしたウェブページ
次のウェブページに従って、Macbookにサクッとインストールできました。
以下の記事では、Hasklell実装ではなく、「VAX UNIX 4.2 上で Franz Lisp を使って実装されている」オリジナルのCPLをインストールする方法が説明されています。ここで解説されているMacbookへのインストール手順は、骨の折れる作業です。
electron@diynoMacBook-Pro ~ % cabal --version
cabal-install version 3.6.0.0
compiled using version 3.6.1.0 of the Cabal library
electron@diynoMacBook-Pro ~ %
これはうまくいかなかった
- cabal: Failed to build readline-1.0.3.0 (which is required by exe:cpl from
electron@diynoMacBook-Pro ~ % cabal install CPL
Resolving dependencies...
Build profile: -w ghc-8.10.7 -O1
In order, the following will be built (use -v for more details):
- readline-1.0.3.0 (lib:readline) (requires download & build)
- CPL-0.0.9 (exe:cpl) (requires build)
Downloading readline-1.0.3.0
Downloaded readline-1.0.3.0
Starting readline-1.0.3.0 (all, legacy fallback)
Failed to build readline-1.0.3.0. The failure occurred during the configure
step.
Build log ( /Users/electron/.cabal/logs/ghc-8.10.7/rdln-1.0.3.0-9ae95c30.log ):
Warning: readline.cabal:27:32: version operators used. To use version
operators the package needs to specify at least 'cabal-version: >= 1.8'.
Warning: readline.cabal:9:3: Tabs used as indentation at 9:3, 10:3, 12:3,
13:3, 15:3, 16:3
Configuring readline-1.0.3.0...
checking for gcc... /usr/bin/clang
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/bin/clang accepts -g... yes
checking for /usr/bin/clang option to accept ISO C89... none needed
checking for GNUreadline.framework... checking for readline... no
checking for tputs in -lncurses... yes
checking for readline in -lreadline... yes
checking for rl_readline_version... yes
checking for rl_begin_undo_group... no
configure: error: readline not found, so this package cannot be built
See `config.log' for more details.
cabal: Failed to build readline-1.0.3.0 (which is required by exe:cpl from
CPL-0.0.9). See the build log above for details.
electron@diynoMacBook-Pro ~ %
これでうまくいった
electron@diynoMacBook-Pro ~ % cabal get CPL
Unpacking to CPL-0.0.9/
electron@diynoMacBook-Pro ~ %
- カレントディレクトリの直下に、「CPL-0.0.9」ディレクトリが作られた。
electron@diynoMacBook-Pro ~ % ls CPL-0.0.9
CHANGELOG.markdown README.markdown build_bdist_linux.sh src
COPYING Setup.hs misc windows
CPL.cabal appveyor.yml samples
electron@diynoMacBook-Pro ~ %
- cdして、cabal install --bindir ~/.cabal/bin --datadir ~/.cabal/share -f -Readlineを実行
( 参考 )
https://mandel59.hateblo.jp/entry/2015/02/02/223147
自分の環境ではreadlineが使えなかったので、-f -Readlineオプションを指定しています。Readlineが使えなくても、Haskelineがかわりに使われるので問題ありませんでした。
electron@diynoMacBook-Pro ~ % cd CPL-0.0.9
electron@diynoMacBook-Pro CPL-0.0.9 %
electron@diynoMacBook-Pro CPL-0.0.9 % cabal install --bindir ~/.cabal/bin --datadir ~/.cabal/share -f -Readline
Wrote tarball sdist to
/Users/electron/CPL-0.0.9/dist-newstyle/sdist/CPL-0.0.9.tar.gz
Resolving dependencies...
Build profile: -w ghc-8.10.7 -O1
In order, the following will be built (use -v for more details):
- CPL-0.0.9 (exe:cpl) (requires build)
Starting CPL-0.0.9 (exe:cpl)
Building CPL-0.0.9 (exe:cpl)
Installing CPL-0.0.9 (exe:cpl)
Completed CPL-0.0.9 (exe:cpl)
Symlinking 'cpl' to '/Users/electron/.cabal/bin/cpl'
electron@diynoMacBook-Pro CPL-0.0.9 %
cplコマンドは、認識されない
electron@diynoMacBook-Pro CPL-0.0.9 % cpl --version
zsh: command not found: cpl
electron@diynoMacBook-Pro CPL-0.0.9 %
フルパスで、/Users/electron/.cabal/bin/cplと打つ必要がある
electron@diynoMacBook-Pro CPL-0.0.9 % ls /Users/electron/.cabal/bin/cpl
/Users/electron/.cabal/bin/cpl
electron@diynoMacBook-Pro CPL-0.0.9 %
electron@diynoMacBook-Pro CPL-0.0.9 % /Users/electron/.cabal/bin/cpl
Categorical Programming Language (Haskell version)
version 0.0.9
Type help for help
cpl> help
exit exit the interpreter
quit ditto
bye ditto
edit enter editing mode
simp [full] <exp> evaluate expression
show <exp> print type of expression
show object <functor> print information of functor
load <filename> load from file
set trace [on|off] enable/disable trace
reset remove all definitions
cpl>
cpl> bye
electron@diynoMacBook-Pro CPL-0.0.9 %
エイリアスを張る
- フルパスのコマンドを、cplで叩けるようにする
- bash_rcに、alias cpl='/Users/electron/.cabal/bin/cpl'を書き込む
electron@diynoMacBook-Pro CPL-0.0.9 % vim $HOME/.bash_rc
electron@diynoMacBook-Pro CPL-0.0.9 % cat $HOME/.bash_rc
( 省略 )
alias cpl='/Users/electron/.cabal/bin/cpl'
electron@diynoMacBook-Pro CPL-0.0.9 %
- bash_rcファイルを読み込む
electron@diynoMacBook-Pro CPL-0.0.9 % source $HOME/.bash_rc
- bash_profileに、source ~/.bash_rcを書き込む
electron@diynoMacBook-Pro CPL-0.0.9 % vim $HOME/.bash_profile
electron@diynoMacBook-Pro CPL-0.0.9 % cat $HOME/.bash_profile
( 省略 )
source ~/.bash_rc
electron@diynoMacBook-Pro CPL-0.0.9 %
electron@diynoMacBook-Pro CPL-0.0.9 % source $HOME/.bash_profile
( 省略 )
source ~/.bash_rc
electron@diynoMacBook-Pro CPL-0.0.9 %
cplコマンドでCPL言語のインタプリタを起動できた
electron@diynoMacBook-Pro CPL-0.0.9 % cpl
Categorical Programming Language (Haskell version)
version 0.0.9
Type help for help
cpl> help
exit exit the interpreter
quit ditto
bye ditto
edit enter editing mode
simp [full] <exp> evaluate expression
show <exp> print type of expression
show object <functor> print information of functor
load <filename> load from file
set trace [on|off] enable/disable trace
reset remove all definitions
cpl> bye
electron@diynoMacBook-Pro CPL-0.0.9 %
electron@diynoMacBook-Pro CPL-0.0.9 % cpl --version
0.0.9
electron@diynoMacBook-Pro CPL-0.0.9 %
CPL言語についてのリファレンス
同じ略語のCPL(Combined Programming Language)とは違います。
Author And Source
この問題について(圏論プログラミング言語 CPLをMacbookで使う), 我々は、より多くの情報をここで見つけました https://qiita.com/electronics_diy721/items/3ff84bd641b7a6020992著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .