Haskell

手続き脳と関数脳の違い

今月号 (2010年6月号) では id:nobsun さんの関数脳が覗ける!Software Design 2010年6月号|技術評論社 第3特集 使いどころも考えどころもまるわかり はじめての関数型言語 Haskell,Clojure,Scheme * 1章:関数型言語とは何か? 手続き型言語との違いと,…

Real World Haskell 日本語版

O'Reilly Japan - Real World Haskell原書は買っているのだが、和訳も買うべきか迷っていたところ、オライリーさんから献本いただけた。 しかも Haskell カンバッチ付。ありがとうございます!!

Real World Haskell 日本語版

ついに出るらしい。2009-10-14 O'Reilly Japan - Real World Haskell 関数型言語Haskellの実用的な書籍を作るプロジェクトから生まれた、「使える」Haskellプログラミングに重点を置いた実用書。Haskell を使って実際に何ができるのか、の視点から、多岐にわ…

Links

RWH の合間に読んでみる。Haskellプログラミングの楽しみ方 (1/3)− @IT のんびりHaskell − @IT 本物のプログラマはHaskellを使う | 日経 xTECH(クロステック) About Haskell http://www.haskell.org/hat/ Page Redirection The Monad.Reader - Haskell…

Real World Haskell - 第6章 Using Typeclasses

Real World Haskell で Haskell を継続的に勉強中。いろいろあって、しばらく間が空いてしまったが、なんとかペースを取り戻すぞ。Chapter 6. Using Typeclasses Chapter 6. Using Typeclasses The need for typeclasses == のように異なる型を比較する場合…

Real World Haskell - 第5章 Part3 A more general look at rendering 〜 Practical pointers and further reading

Real World Haskell で Haskell を継続的に勉強中。 Chapter 5. Writing a library: working with JSON data Chapter 5. Writing a library: working with JSON data A more general look at rendering Prettify module つくるよ Developing Haskell code wi…

Real World Haskell - 第5章 Part2 The anatomy of a Haskell module 〜 Type inference is a double-edged sword

Real World Haskell で Haskell を継続的に勉強中。 Chapter 5. Writing a library: working with JSON data Chapter 5. Writing a library: working with JSON data The anatomy of a Haskell module module 宣言を書き、exports を列挙し、where で終わる …

“A tutorial on the universality and expressiveness of fold”

http://www.cs.nott.ac.uk/~gmh/fold.pdfChapter 4. Functional programming The article [Hutton99] is an excellent and deep tutorial covering folds. It includes many examples of how to use simple, systematic calculation techniques to turn func…

のんびり Haskell

のんびりHaskell − @IT関数適用、関数の型、関数束縛、関数抽象、カリー化などが一気に説明されているので復習に良い。

Real World Haskell - 第5章 Part1 A whirlwind tour of JSON, Representing JSON data in Haskell

Real World Haskell で Haskell を継続的に勉強中。 Chapter 5. Writing a library: working with JSON data Chapter 5. Writing a library: working with JSON data A whirlwind tour of JSON JSON を操作するライブラリを実装していく JSON (JavaScript Ob…

Real World Haskell 読書会

Real World Haskell 読書会 に参加した。様々な分野の人が参加されていて興味深かった。 皆さん、ML など複数の関数型言語の経験があるようで、自分が一番初心者な感じだった。 隣の席に monao (nario) の id:mokehehe さんがいて、ちょっとビックリ。 id:sm…

Real World Haskell - 第4章 Part12 Space leaks and strict evaluation

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming Space leaks and strict evaluation foldl 以外にも space leak が発生する場合がある seq で non-strict evaluation をバイパスで…

Real World Haskell - 第4章 Part11 Code reuse through composition

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming Code reuse through composition 関数合成は . でできる suffixes2 xs = init (tails xs) compose :: (b -> c) -> (a -> b) -> a -…

Real World Haskell - 第4章 Part10 As-patterns

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming As-patterns as-pattern を使うと読みやすいコードが書ける as-pattern ではデータのコピーが発生しないので allocation を節約で…

Real World Haskell - 第4章 Part9 Partial function application and currying

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming Partial function application and currying この説明を待っていた! You may wonder why the -> arrow is used for what seems to …

Real World Haskell - 第4章 Part8 Anonymous (lambda) functions

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming Anonymous (lambda) functions Haskell では無名関数はλ関数とも呼ぶ \ でλ関数が使える \ は lambda と読む 日本だと backslash …

単一代入と末尾再帰

RWH (Real World Haskell) では末尾再帰 (tail recursion) がサラッと説明無しに出てきたので、 RWH は少し離れて、末尾再帰について少し調べていた。第2回 「単一代入」と「末尾再帰」 | 日経 xTECH(クロステック) 「関数が返ってきた後にする処理」がな…

Real World Haskell - 第4章 Exercises Part2

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming回答は順次追記していく。 Excercise が溜まってきたので消化しないと・・・ Excercises (Section "Left folds, laziness, and spac…

Real World Haskell - 第4章 Part7 How to think about loops (続き)

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming How to think about loops Left folds, laziness, and space leaks foldl は space leak を起こすので thunk を作らない foldl' を…

Real World Haskell - 第4章 Part6 How to think about loops (続き)

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming How to think about loops for/while ループは Haskell には存在しないので別の方法で表現する必要がある Folding from the right …

Real World Haskell - 第4章 Part5 How to think about loops (続き)

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming How to think about loops for/while ループは Haskell には存在しないので別の方法で表現する必要がある The left fold foldl :: …

Real World Haskell - 第4章 Part4 How to think about loops (続き)

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming How to think about loops for/while ループは Haskell には存在しないので別の方法で表現する必要がある Selecting pieces of inp…

Real World Haskell - 第4章 Part3 How to think about loops

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming How to think about loops for/while ループは Haskell には存在しないので別の方法で表現する必要がある Explicit recursion impo…

Real World Haskell - 第4章 Exercises Part1

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming回答は順次追記していく。 Excercises (Section "Special string-handling functions" の後にあるもの) 1.Write your own “safe” de…

Emacs と cabal-install の設定

Real World Haskell - 第1章 - バイナリアンを目指して GHC 6.10.1をWindows XP にインストールした。 さらに Emacs と cabal-install を設定した。 Emacs ftp://ftp.gnu.org/gnu/emacs/windows/ から emacs-22.3-bin-i386.zip をダウンロードして解凍 解凍…

Real World Haskell - 第4章 Part1 like a "laundry list"

Real World Haskell で Haskell を継続的に勉強中。 Chapter 4. Functional programming Chapter 4. Functional programming Infix functions infix notations is purely a syntactic convenience Woking with lists :module +Data.List length :: [a] -> In…

Real World Haskell - 第3章 Exercises Part2

Real World Haskell で Haskell を継続的に勉強中。 Defining Types, Streamlining Functions Chapter 3. Defining Types, Streamlining Functions問題が多いので回答は順次追記していく。 Exercises 1.Write a function that computes the number of elemen…

Real World Haskell - 第3章 Exercises Part1

Real World Haskell で Haskell を継続的に勉強中。 Defining Types, Streamlining Functions Chapter 3. Defining Types, Streamlining Functions Exercises (Section "Recursive types" の最後にあるもの) 1. Write the converse of fromList for the List…

Super Nario Bros.

スーパーマリオナリオは Haskell のキラーアプリとなるに違いない。Haskellで敵を踏み潰したりするゲームを作ってみた - imHo 現状 22ソース、1605行 この行数で書けるのか。 HSDL を使っているから短いというのもあるとは思うのだが、 Haskell は「 1行が濃…

Real World Haskell - 第3章 Part11 Conditional evaluation with guards

Real World Haskell で Haskell を継続的に勉強中。 Defining Types, Streamlining Functions Chapter 3. Defining Types, Streamlining Functionsようやく 3章も終わり。 Conditional evaluation with guards guard expression でパターンマッチに条件を付…