Haskellの環境を整える

久々にHaskellを扱おうと思ったら忘れてることも多く、しばらく思い出す作業をします。

以前に「Learn You a Haskell for Great Good!」の洋書を購入して一通りは学んだのですが、「Real World Haskell」で途中挫折して放置していたものですね。Rearl World Haskellは少し古い本になっていますね。邦訳の本を買ったのですが、これは少し公開していて買うなら洋書のほうが良かったなと後で思ったものです。理由は簡単で、意味不明な訳が所々あることですね。翻訳も分担されておられるようで、良い方と悪い方の落差が顕著というところでしょうか。共にオンラインでも公開されています。

さて、前置きはこのくらいにしておいて、環境を構築しないと先に進めません。

利用するもの

意図としてどのOSでも利用環境はあまり変わらないものを意識しております。

エディタ

当時はもともとcommon lisperをやってたので親和性の高いemacsを利用してましたが、今利用環境がwindows10ということでemacsとの相性が良いと思わないのですね。OSに依存しない形をなるべく取りたいので、最近のエディタ状況を見ていてatomを導入してみようと思ったですね。linux系をインストールしてemacs環境で扱うことも考えたのですが、郷に入れば郷に従えという発想でやってます。だからatomのキーマップをemacs風にしたりvim風にしたりというのは最後の最後で判断してみます。

Haskell

Haskellも以前と違って、stackを利用すれば簡単に環境が導入できるというのを見て時代が変わったなぁ。浦島太郎だわ。。。と思ってしまったところです。stackを見てるとClojureのleiningenやScalaのSbtみたいなのを思い出しますね。(ScalaはMOOCsで学んだけどそれっきり使ってないです。)

参考にしたもの

基本的にすでにある情報を参考にすれば簡単に作れるかな。2つ参考にしましたが、1つはリンクを載せるのはSSLの期限切れセキュリティ警告のサイトになってるので控えておきます。(httpsをhttpへ変更して読みました。)

ただ、ide-haskell-replというパッケージをatomに導入するには、windowsでは問題があるようで次のように書かれてるのです。

Using on Windows

On Windows, interrupting ghci will kill it. There is no good solution to this problem at the moment, but there is a “bad” solution.

You need to get ghci-wrapper.exe executable from https://github.com/atom-haskell/win-ghci-wrapper/releases (or if you don’t trust random binaries you’ve downloaded from the Internet, you can build it from source — you only really need ghc for that)

Then you need to specify full path to this executable in ghciWrapperPath setting of this package.

For example, if you placed ghci-wrapper.exe in C:\Downloads directory, you need to put C:\Downloads\ghci-wrapper.exe inghciWrapperPath setting.

Finally, restart any open REPL sessions.

guthubにあるghci-wrapper.exeを入手する必要があるとのことです。これは明確に書かれてるので、

\Users\(ユーザー名)\AppData\Roaming\local\bin

においておきました。(上記の説明で書かれてる例はユーザー名の下のダウンロードにパスを通す方法ですが、stack出できた実行ファイルがある場所においたと言うだけです。)そして、ide-haskel-replの環境設定でghciWrapperPathに

実際にstackでプロジェクトを作って、先人たちのstack,haskell,atomの情報を参考にしてlintなども入れましたが、たしかにwindows上ではちょっと不具合があるようです。(不具合もすでに報告済みと表示が出てます。)この不具合のことも含めてwindowsでプログラミング言語を扱うのは向いてないかもしれないなとは思うのですが、どうなんでしょうね。

replはまだ使ってないのですが、あると無しでは効率が変わりますからね。本当はemacs+slime(common lispでの開発環境でエディタ下のreplの使い方はこれ以上のものはないかもしれない。clojureでもnreplが使い勝手が良いものです。)みたいにしたいと思ったのですね。replといっても動的言語のように使い勝手が良いとは思わないのですが、最悪の場合はcommand プロンプトにてstack replで確認ですね。

雑感

カーソルの移動がatomはemacsやviとくらべてしまうと矢印しか使えないようでちょっと使いづらいです。キーマップをみながらどんなエディタなのか見ながら使ってるところですね。今日はじめて触ったエディタなのでわからないことだらけです。ついでにatomでpython(anaconda)環境も整えたし、当面はhaskellとpython中心で訓練したいですね。プログラミング言語の忘却防止のためのメモ帳として使うので、内容は薄いものになるかもしれません。

アイキャッチ画像はないですが、そのうち作ります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です