クリスマス後に4℃のアクセサリが多数オークションに出品されるのはとても趣がある。
モジュール
Haskell にはモジュールがある。モジュールには複数の関数と型を定義できる。 そのモジュールのうちの幾つか、または全てをエクスポートできる。 エクスポートするとモジュールの中のものを外から使えるようになる。
Haskell のモジュールは https://hackage.haskell.org/ にたくさんあり、stack install パッケージ名
でインストールできる。
モジュールインポート
import ModuleName
でインポートできる。インポート構文は全ての関数定義よりも前に書く必要がある。
import Data.List numUniques :: (Eq a) => [a] -> Int numUniques = length . nub
nub
はData.List
がエクスポートする関数の1つで、リストから重複する要素を取り除く関数。
GHCiからもインポートできる。
*Main> :m + Data.List *Main> import Data.List
どちらの書き方でもいける。
複数のモジュールをインポートする
*Main Lib> :m + Data.List Data.Map Data.Set <no location info>: error: Could not find module ‘Data.Map’ It is a member of the hidden package ‘containers-0.5.7.1@containers-0.5.7.1’.
エラーが出る
my-project.cabal
のbuild-depends
にcontainers
を追加
name: my-project version: 0.1.0.0 synopsis: Short description of your package homepage: https://github.com/githubuser/my-project#readme license: BSD3 license-file: LICENSE author: Author name here maintainer: example@example.com copyright: 2017 Author name here category: Web build-type: Simple extra-source-files: README.md cabal-version: >=1.10 -- To avoid duplicated efforts in documentation and dealing with the -- complications of embedding Haddock markup inside cabal files, it is -- common to point users to the README.md file. description: Please see the README on Github at <https://github.com/githubuser/my-project#readme> library hs-source-dirs: src exposed-modules: Lib build-depends: base >= 4.7 && < 5 , containers default-language: Haskell2010 ... ...
インポートできた
*Main Lib> :m + Data.List Data.Map Data.Set *Main Lib Data.List Data.Map Data.Set>
あるモジュールの特定の関数のみインポートする
*Main Lib> import Data.List (nub, sort) *Main Lib Data.List>
読み込みたくない関数以外をインポートする
*Main Lib> import Data.List hiding (nub) *Main Lib Data.List>
nub 以外をインポート
関数の名前衝突を避ける方法
*Main Lib> import qualified Data.Map *Main Lib Data.Map>
これでインポートするとData.Map.filter
で関数呼出する必要がある。
別名をつけられる
*Main Lib> import qualified Data.Map as M *Main Lib M>
M.filter
で関数にアクセスできる
所感
stack まわりの設定がよくわからん。調べる必要がある。

- 作者: MiranLipovaca
- 出版社/メーカー: オーム社
- 発売日: 2017/07/14
- メディア: Kindle版
- 購入: 4人 クリック: 9回
- この商品を含むブログを見る