ghciの使い方
プロンプトを変える
:set prompt "foo>"
バンドされている情報を見る
:show bindings
foo>let x = 123 foo>let y = "abc" foo>:show bindings x :: Num t => t = _ y :: [Char] = _ foo>
ロードされているモジュールを確認する
:show module
foo>:l MyWebApp1.hs [1 of 1] Compiling Main ( MyWebApp1.hs, interpreted ) Ok, modules loaded: Main. foo>:show modules Main ( MyWebApp1.hs, interpreted ) foo>
インポートされている情報を確認する
:show imports
foo>import Data.Set foo>:show imports import Data.Set :module +*Main -- added automatically foo>import Servant foo>:show imports import Data.Set import Servant :module +*Main -- added automatically foo>
エディタを開く
:edit
言語拡張情報の確認
:show language
foo>:set -XConstraintKinds foo>:show language base language is: Haskell2010 with the following modifiers: -XConstraintKinds -XNoDatatypeContexts -XNondecreasingIndentation foo>
main関数ではない関数をmainとして実行する
:main [foo] op1 op2 op3
historyファイルの場所
~/.ghc/ghci_history
Polynomialを整形して表示する
Math.Polynomial
パッケージのPoly
型のShow
は内部構造をそのまま文字列表現するので、読みにくいときがあります。そこで、多項式を数式のように表示するサンプルを書いてみました。
Tabularのインストール
dein
の設定ファイルにtabular
のリポジトリを追加します。
- 設定ファイルの場所
~/.dein.toml
- 設定内容
[[plugins]] repo = 'godlygeek/tabular'
- 使い方
ビジュアルモードで範囲を指定して下記コマンドを実行します。(範囲指定は必要ないはずなのですが、範囲指定しないとタブ化できませんでした。)
:Tabularize /,
実行前
aaaa, bbbb c,d
実行後
aaaa , bbbb c , d
DeriveFoldableの練習
Foldable
であるにはFunctor
であることが前提です。そのため、Deriving
の対象となるのは、型の最後のパラメータになります。