Skip to content

Commit

Permalink
Explain how to use the split package
Browse files Browse the repository at this point in the history
  • Loading branch information
igrep committed Apr 3, 2022
1 parent ca34f6b commit 7c3fdcf
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions assets/14.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,23 +102,37 @@ split> Registering library for split-0.2.3.4..

※こちらも出力は環境や、すでにsplitパッケージをインストール済みか否かで変わります。

### インストールしたパッケージを利用出来る状態で、GHCなどを実行する
### インストールした`split`パッケージをGHCiで試す

<!-- TODO: cabal new-execでも同じことが出来るはず -->
前節の手順で、`split`パッケージをインストールできました。使い方を学ぶためにもGHCi上で試してみましょう。

詳細な事情は後で解説しますので、ひとまず、下記のコマンドは、`stack install split`を実行したのと同じディレクトリーで実行してください。
`cabal install --lib``split`パッケージをインストールした方は、下記の通り`ghci`コマンドを起動すれば普通に`import Data.List.Split`できるようになっています:

<!--
cabal update && cabal install --lib split
-->

```haskell
shell> stack exec ghci
shell> ghci
Loaded package environment from /root/.ghc/x86_64-linux-9.0.2/environments/default
GHCi, version 9.0.2: https://www.haskell.org/ghc/ :? for help
ghci> import Data.List.Split
```

今度は`Data.List.Split`モジュールを`import`出来るようになっているはずです。
stackでGHCをインストールした方はこちらのとおり、`stack exec ghci`コマンドを使いましょう:

```haskell
shell> stack exec ghci
-- ... 省略 ...
ghci> import Data.List.Split
```

文字列をタブで区切ってリストに変換するには、`Data.List.Split`モジュールに入った`splitOn`関数を次のように使います。第一引数に区切り文字(列)を、第二引数に分割したい文字列を与えましょう:
<!-- 脚注が使えるようになったら脚注に寄せたい -->
`stack ghci`というよく似た名前のコマンドもありますが、こちらは`stack exec ghci`とは少し用途が異なります(詳細は割愛します)。その関係で、起動する`ghci`コマンド自身にオプションが渡しづらいといった問題があるので、ここでは`stack exec ghci`を紹介しています。

いずれにしても、今度は`import Data.List.Split`しても特にエラーメッセージが表示されなかったはずです。これでちゃんと`Data.List.Split`をちゃんと`import`できました。使ってみましょう!

本課題の要件のとおり、文字列をタブで区切ってリストに変換するには、`Data.List.Split`モジュールの`splitOn`関数を次のように使います。第一引数に区切り文字(列)を、第二引数に分割したい文字列を与えましょう:

```haskell
ghci> splitOn "\t" "foo bar\tbaz"
Expand Down

0 comments on commit 7c3fdcf

Please sign in to comment.