2015-01-30から1日間の記事一覧

Functors, Applicative Functors, Monoids(10)

定義をがっちり作って、それにうまく動くように関数を作って・・・という「がっちりした作り」ではなくて、定義・概念が相互にオーバーラップするような作りになっているのがタイプ・タイプクラス。そして、そのようなタイプ・タイプクラスの連結状態として…

関数とその組み合わせ(9)

関数処理を考えるときに、関数と引数との位置関係について、また、その処理順序指定記法について、よく考えて慣れることは大事。f(x)で書いたり、中置関数としたり、再帰したり・・・

モジュール(8)

ターミナルから実行して表示させるプログラムを作る main = putStrLn "hello" を書いたテキストファイルhs0129.hsを作成し、そのファイルの置き場にて、ターミナルで ghc --make hs0129 としてやれば、これはghcが持つコンパイラ機能により、実行可能プログ…

モジュール(7)

タイプ・タイプクラスの自作 以下をファイルに書いてロードすると、Showクラスを継承したPersonなるタイプができて、それは、String,String,Intを持つ。しかも、それをPerson->Stringというタイプ関係で扱う関数fが生成される data Person = Person { f:: St…

モジュール(6)

できあいの色々を使わないと!モジュール モジュールを集めたパッケージは、Hackageで管理してあって、それを取ってくるにはcabalというのが便利なのだけれど、Macは慣れていない(し、そもそもとってきたものがどこにあるのかの探し物をすることすら慣れてい…

カリー、map とその類似処理(5)

mapはリストによく使う すべてのリスト要素に何か処理をするのがmap それに似ているのは、filter。これもすべてのリスト要素に何か処理をするが、条件に合ったものだけを返して、それ以外は返さないところが違う さらに類似は、foldl。これはリストの左から…

文法の基礎(4)

入力が7なら1を返し、それ以外なら0を返す関数を作る(hs0129.hsというファイルで保存) sevenorothers :: (Integral a) => a -> a sevenorothers 7 = 0 sevenorothers x = 1 これをロードして ghci> :l hs0129.hs [1 of 1] Compiling Main ( hs0129.hs, inte…

タイプも基本(3)

インテジェのリストだよ ghci> let a=[1..5] ghci> :t a a :: [Integer] 関数を書いて、そのタイプをチェック。リストを取ってその和を返す関数 そのタイプは、何かしらのタイプa(ただし、それはsumがとれるようなタイプであって、そのようなタイプはNumと称…

ごく基本。関数ファイルの読み込み、リスト・タプル・集合表記(2)

関数を書いたファイルを保存して、ロードして使う doubleme x = x + x というテキストファイルを"hs0129.hs"という名前で保存して :l hs0129.hs とやれば、読み込んでコンパイルしてくれて doulbeme 3 とやれば使える ghci> :l hs0129.hs [1 of 1] Compiling…

MacでHaskellやり直し(1)

MacでやっていたHaskell環境にトラブル発生、と言うわけで、インストールからやり直し Haskellのインストールはこちらから インストールが終われば、ターミナルを開いて > ghci これで動くので、この勉強会テキストへGo!