Haskell

気がついたら同じ質問を再度していたので忘れないようにメモ

最近ghcの調子が悪いんです この前もcat.hsをemacsで書いてrunghcでターミナル上で 実行させようと思ったら実行しないしghcも終了しない この状態をどうにかしたかったのでHaskellの師匠でもある id:ujihisaさんに相談をしてなんとか解決したのですが 私のgh…

ghci

【ふつうのHaskellプログラミング】4章を読んでいたらMainモジュールとPreludeモジュールが出て来た 読んでみたらghciの使い方が分かったので3月末くらいからghciで遊んでいます! 今までは本読んで理解してるつもりだったんだけど、実際に《型と値 Part1 P…

型と値 Part2

なんかすっごく長い文章ですね! けど、型と値は大切だと思ってます【複数の型変換】 take 3 [1,2,3] → [1,2,3] このtake関数を型変換すると Int -> [a] -> [a] 詳しく解説すると Int ( take3 )が第一引数で[1,2,3]を第二引数にとり[1,2,3]という返り値にな…

型と値 Part1

いい加減に『ふつうのHaskellプログラミング』読み終わってるところまでのまとめをしておきます 昨日から書き貯めてたのですが、あまりにも長く書いてしまったので2つに区切ります【静的型チェックと型推論】 Haskellではコンパイル時に静的型チェックをし…

再帰

この間hayamizuさんとあった時に自分がHaskellでつまずいていた再帰について話をしました 正直どうして map f (x:xs) = f x : map f f xs なのか分からなかったのです どうしてリストを最初の値とそれ以外の値に分けるのかふつうのHaskellの図解を見ても分か…

Haskell Returnsへの野望!

初心者の私にはHaskell勉強会 http://cotocoto.jp/event/19053 が先に進みすぎていて追いつけそうもないorz (とか言いながら参加するつもるだしw) なので、私が主催or誰かが主催してくれるかんじでHaskell Returns勉強会 やりたいなーなんて野望を持っている…

とても分かりやすい説明

ふつうのHaskellプログラミングに 『 Intとは最低30ビット幅の符号付き整数値を意味します 』と書いてあった。 そのまま読み流しても良かったのかもしれないがとても気になった 最低30ビット幅とはどういう意味があるのかと質問してみたところ たとえば ほん…

型宣言はどうして必要なのか?

正直奥が深すぎて理解しきれていないけど、とりあえず分かっている事を書きます 突っ込みどころがあったら指摘ヨロシクです★ 『型』とは何か? Q. 型を割り当てること(「型付け」)によってビットの集まりに意味が与えられる 型は通例、メモリ中の値と変数…

型と値でハマってる・・・

風邪を引いてだるいのに頭の中からHaskellが離れない(T^T) もっと分かりやすくしてほしいが・・・これでも充分分かりやすいんだろうな とりあえず『IO()』とか『(Show a) =>』は無視って遅延評価か? 今から書かれてもなあ・・・ とりあえず2~3日以内には3.1…

2章まとめと練習問題

とりあえず、コマンドやアクションについては書いたのでスルーでw いろいろあったけど、vim使って今までのコードはrunhugsで実行する事ができた vimでは :w 保存 :q 終了 を新たに覚えた! runhugsでは実行したプログラムを終了させるために control c 終了 …

リストの基本処理3

tailコマンドはheadコマンドの逆で入力の最後の数行を表示します tail.hs main = do cs <- getContents putStr $ lastNLines 10 cs lastNLines n cs = unlines $ takeLast n $ lines cs takeLast n ss = reverse $ take n $ reverse ss csもssもファイル名で…

リストの基本処理2

head.hs main = do cs <- getContents putStr $ firstNLines 10 cs firstNLines n cs = unlines $ take n $ lines cs まずfirstNLines関数に10とcsという2個の引数が渡されている事に注目です 一般には、関数適用は次のように書きます。 関数名 引数1 引数2 …

リスト処理の基本

countlineコマンド:標準入力の行数を数えるコマンド 例えば ./countline < cat.hs 2 これは以前作った main = do cs <- getContents putStr cs というプログラムが2行で書かれている事を示します。$演算子:括弧とほぼ同定義で使用 メリットとしては括弧だ…

Haskell勉強会に行ってきた!

まだ2章読み切っただけなのに(今日中には2章まとめ書くよ♪)charengeしてきました★ 私以外全員他の言語使っているせいか、話の内容が高度でした(;_;) でも分からないなりにもとても勉強になったし、周りの雰囲気がとても良かったので楽しかったです♪ 私の勉強…

リストとリストリテラル

ここはかなり苦戦しました。 リストとは値を一列に並べたデータ構造の事です Haskellではリストはリンクリストと同じ性質を持ち、前から後ろにたどることはできますが逆にはたどれません。 また、Haskellのリストには一種類の値しか入れられません。 『空リ…

cat.hsについて

main = do cs < - getContents putStr cs getContents は標準入力をすべて読み込むアクションです。 putStrは関数で引数の文字列を標準出力にそのまま返すアクションをします。この構文の [Haskellでは『変数を値に束縛する( bind )』と言います。 束縛され…

catコマンドについて

catコマンドとは入力に何も手が加えずに標準出力から読んで標準出力に書くコマンドでした。 だから短いファイルなら内容をcatコマンドで確認することができて便利なんですね。 catコマンドがコマンドライン引数 ( プログラムやコマンドを実行する行をコマン…

mainアクションと関数適用

main = putStrLn " abc " "~"の中身が文字の場合 文字列リテラルという リテラルとはプログラムのソースコード中に使用される定数のこと。 定数については少し後で・・・ "~"の中身が数字の場合は数値リテラルという( Haskellで使うかはまだ不明 )main = 変…

Haskellの基礎について

まず、コマンドから cat : 標準入力から読んで標準出力に書くコマンド 標準入力:コンピュータにおいて特に指定しないときに用いられる(デフォルトの)データの入力・出力を標準入出力と言う。 ujihisaさんが言っていたshellの勉強とは標準入出力をshellで…

【Haskell理解出来て読み物がなくなったら読む】

Haskell英語バージョン http://hackage.haskell.org/trac/ghc http://hackage.haskell.org/trac/ghc/wiki/Commentary ついでに【英語の勉強もする】タグも付けておくwモナドのすべて http://www.sampou.org/haskell/a-a-monads/html/ これも【いつか読む】タ…

大文字小文字は大切

私的には別に大文字でも小文字でも問題が無い事でも、コンピューターにとっては大切な事。 例えば"main"でも"MAIN"でもいいと思うが、大文字"MAIN"ではプログラムは実行されない! なんて、デリケートで繊細なのかしら! "printLn"のような2個の単語が組合わ…

第一章まとめ♪

コンパイルとは・・・コンピュータがプログラムを読み込めるようにする作業 私は英語のcompile(=まとめる)の意味で理解していましたが間違いでした。 書いたコードをまとめるんだと思っていたけど、もう大丈夫!Javaでは、メソッドを呼ぶ前にその引数を評価…

なんとか読めてきた?

キャスト:プログラミング言語において、変数などの型を、を別の型に変換すること。例えば実数型の数(a)と整数型の数(b)とを足し算したい場合には、数(b)をいちど実数型へと変換を行ってから双方を足し算すればよい。言語によっては、キャストを黙示的…

難しい(苦笑)

関数型言語:数学的な言語仕様をもつプログラミング言語のこと。一度値を与えられた変数は常にその値を維持し、計算は計算結果を引数とした関数呼び出しの繰り返しとして行われる。引数(ひきすう):プログラム中で関数やメソッド、サブルーチンなどを呼び出す…