Closed10

2020年にVSCodeでIdrisをする

yukiyuki

Idrisという言語を知っていますか。依存型つきHaskellなんですが、実は今年の言語として触ろうと思って年始に触っていました。

PCを変えてしまったので改めて環境設定をする必要があり、ちょうどいい機会だと思ったので状況をメモしようと思います。

🌟 やろうとしていること

  • OSはmacOS。
  • エディタはVSCode。
  • 最近のHaskellはstackを使うべきなのかcabalを使うべきなのかどっちが多いのかを調べる。
    • ちなみにIdrisの公式インストールガイドはcabalだった。
  • Hello, Worldする。

Idris

https://www.idris-lang.org/

yukiyuki

cabalを入れた!

$ brew install cabal-install
yukiyuki

ちがった。cabalは今後また使うだろうからこのままでいいけど。

brew install idris で入れられるらしい。ということで、試してみる。
http://wkwkes.hatenablog.com/entry/2016/12/17/000000

入った!

❯ idris --help
Idris version 1.3.3 , (C) The Idris Community 2016
yukiyuki

VSCodeのプラグインはこれを使う。Extensionsで「idris」と入力して検索すると出てくる。

yukiyuki

idringenを設定する

まずcabalを使ってインストールする。

$ cabal install idringen

もしcabal系のなにかを一度も使ったことがないのであれば、パスを通す必要があるので通す。

export PATH = "$HOME/.cabal/bin:$PATH"

通した後に

$ idrin --help

ただしコマンドは実装されていないらしい。。。

❯ idrin --help
idrin: not support subcmd --help yet
CallStack (from HasCallStack):
  error, called at src/Idringen.hs:28:24 in drngn-0.1.0.3-b556eddc:Idringen
yukiyuki

idringenでプロジェクトを作成する

下記のコマンドを打つとプロジェクトを作ることができる。

❯ idrin new idris-sandbox
Creating new project named idris-sandbox

中身を見る。

idris-sandbox on ☁️  ap-northeast-1
❯ ls --tree
.
├── idris-sandbox.ipkg
├── README.md
└── src
   ├── Main.idr
   └── Test.idr

これで一旦入りきったはず!

yukiyuki

もしかして、なかなか不安定なのかな?

idris-sandbox on ☁️  ap-northeast-1
❯ idrin build
Uncaught error: user error (idris-sandbox.ipkg:15:19:
   |
15 | executable = idris-sandbox
   |                   ^
unexpected '-'
expecting "author", "brief", "bugtracker", "executable", "homepage", "libs", "license", "main", "maintainer", "makefile", "modules", "objs", "opts", "pkgs", "readme", "sourcedir", "sourceloc", "tests", "version", or end of input
)

そいえばcargoでもハイフンがダメだったなーと思って、ハイフンが怪しそうなのでプロジェクト名を変えてみた!

❯ idrin new idrissandbox
Creating new project named idrissandbox

そしたら無事に起動できた。

❯ idrin build
Entering directory `./src'
Type checking ./Main.idr
Leaving directory `./src'

runまで無事に完了した。

❯ idrin run
hello idrissandbox!
yukiyuki

ここまで来ると、VSCodeもしっかりプロジェクトを認識してくれるようになった。これで、Idris on VSCode自体は一応完了かな。

このスクラップは2020/12/01にクローズされました