16
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iHaskellを試してみる

Last updated at Posted at 2016-10-02
1 / 16

iHaskellとは

iHaskell は Jupyter用のカーネルの一つです。
Jupyter NotebookでHaskellが利用できます。


Jupyterとは

Juyter NotebookはWebアプリケーションで共有するためのの文書作成アプリケーション

文書内には実行できるコードを書いて、数式を表示したり、可視化したりとか、対話可能なウィジェットを表示することも可能。


iPythonとは

以前はiPythonというプロジェクトだったようですが、Python限らずに使えるようになってJupyterになったみたいです。(知らんけど)

iPythonはPryのPython版のイメージ。(個人のイメージ)


Jupyterの普及

プログラマー以外が使うツールとして普及してきているイメージがあります。(要出典)
特にR言語を活用していた領域にJupyter Notebookが侵食してきているようにみえてます。(感想)


Jupyterを試す

Juypter試すだけなら公式のお試しページで試すことができます。
もちろん(?) iHaskell もつかえます


使える言語

  • Scala (Sparkとの統合がある)
  • Bash (お、おう)
  • Haskell
  • Julia (科学技術で人気でてきている)
  • Python 2 (扱いやすい汎用言語)
  • Python 3 (扱いやすい汎用言語)
  • R (もともとデータサイエンスで人気ある)
  • Ruby (扱いやすい汎用言語の対抗馬)

Jupyterの機能に対して需要がある言語が用意されているのが伺えます


iHaskellの利用


iHaskellのインストール

dockerを使うと簡単に試せます。

docker run -it -v "${PWD}:/notebooks" -p "8081:8888" gibiansky/ihaskell:latest

http://localhost:8081 にアクセス。


基本的な使い方

hでヘルプが表示される。

viっぽいキーバインド

–--

デモ

(あとでgistのリンクがあるのでdemoの内容はそっちで)


ihaskellで表示できるデータ型

型クラスIHaskellDisplayのインスタンスであれば表示可能。

デフォルトで IO a Display DisplayData [a]なんかを表示できる。


gistでプレビュー

ipynbファイルはGitHubでプレビューできる。
gistも。


Google Claud Datalab でプレビュー

DatalabはJupyterをベースにBigQueryなどGoogle Cloud Platform(以下GCP)と連携できるようにカスタマイズされたもの。
表示もカスタマイズされていて、素のJupyterより綺麗。

Google Chatring Apisにアクセスするchartコマンドが用意されている。

stack driverにアクセスしてインスタンスのレポートをだしたりもできる。

iHaskellを動かすことはできないけどプレビューはできる。


Google Cloud Datalabのローカル起動

GCPのプロジェクトIDが必要。

docker run -it -p "127.0.0.1:8081:8080" -v "${HOME}:/content" \
   -e "PROJECT_ID=${PROJECT_ID}" \
   gcr.io/cloud-datalab/datalab:local

http://localhost:8081 にアクセス。


Kobito.w6Ur0J.png


まとめ

つかってみると人気があるのはわかる気がする。
エディターwith対話環境という感じ。

ページャーをOFFにしたときの表示がバグってるのがつらい。

GHC 8系はPull Requestはきてるけどまだ未対応

リソース

Makefile

docker起動するのにつかった

IMAGE := eiel/ihaskell
PORT := 80
VOLUME := /home/docker-user
PROJECT_ID := <project-id>

.PHONY: ihaskell
ihaskell:
        docker run -it -v $(VOLUME):/notebooks -p $(PORT):8888 $(IMAGE)

.PHONY: datalab
datalab:
        docker run -it -p $(PORT):8080 -v "$(VOLUME):/content" \
   -e "PROJECT_ID=$(PROJECT_ID)" \
   gcr.io/cloud-datalab/datalab:local

Dockerfile

R言語いれただけ eiel/ihaskell にpush済み

FROM gibiansky/ihaskell:latest

RUN apt-get update && \
    apt-get install -y \
            r-base
  && rm -rf /var/lib/apt/lists/*
16
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?