2015-01-30から1日間の記事一覧
定義をがっちり作って、それにうまく動くように関数を作って・・・という「がっちりした作り」ではなくて、定義・概念が相互にオーバーラップするような作りになっているのがタイプ・タイプクラス。そして、そのようなタイプ・タイプクラスの連結状態として…
関数処理を考えるときに、関数と引数との位置関係について、また、その処理順序指定記法について、よく考えて慣れることは大事。f(x)で書いたり、中置関数としたり、再帰したり・・・
ターミナルから実行して表示させるプログラムを作る main = putStrLn "hello" を書いたテキストファイルhs0129.hsを作成し、そのファイルの置き場にて、ターミナルで ghc --make hs0129 としてやれば、これはghcが持つコンパイラ機能により、実行可能プログ…
タイプ・タイプクラスの自作 以下をファイルに書いてロードすると、Showクラスを継承したPersonなるタイプができて、それは、String,String,Intを持つ。しかも、それをPerson->Stringというタイプ関係で扱う関数fが生成される data Person = Person { f:: St…
できあいの色々を使わないと!モジュール モジュールを集めたパッケージは、Hackageで管理してあって、それを取ってくるにはcabalというのが便利なのだけれど、Macは慣れていない(し、そもそもとってきたものがどこにあるのかの探し物をすることすら慣れてい…
mapはリストによく使う すべてのリスト要素に何か処理をするのがmap それに似ているのは、filter。これもすべてのリスト要素に何か処理をするが、条件に合ったものだけを返して、それ以外は返さないところが違う さらに類似は、foldl。これはリストの左から…
入力が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…
インテジェのリストだよ ghci> let a=[1..5] ghci> :t a a :: [Integer] 関数を書いて、そのタイプをチェック。リストを取ってその和を返す関数 そのタイプは、何かしらのタイプa(ただし、それはsumがとれるようなタイプであって、そのようなタイプはNumと称…
関数を書いたファイルを保存して、ロードして使う doubleme x = x + x というテキストファイルを"hs0129.hs"という名前で保存して :l hs0129.hs とやれば、読み込んでコンパイルしてくれて doulbeme 3 とやれば使える ghci> :l hs0129.hs [1 of 1] Compiling…
MacでやっていたHaskell環境にトラブル発生、と言うわけで、インストールからやり直し Haskellのインストールはこちらから インストールが終われば、ターミナルを開いて > ghci これで動くので、この勉強会テキストへGo!