Real World Haskell
実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan, John Goerzen, Don Stewart(著)
山下 伸夫, 伊東 勝利
株式会社タイムインターメディア(翻訳)
開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- プログラミング言語: Haskell (純粋関数型)
Real World Haskell』(Bryan O'Sullivan、John Goerzen、Don Stewart(著)、山下 伸夫、伊東 勝利、株式会社タイムインターメディア(翻訳)、オライリー・ジャパン、2009年、ISBN978-4-87311-423-3)の6章(型クラスを使う)の6.9(重複インスタンスのないJSON型クラス)の練習問題1、2.を解いてみる。
1, 2.
入出力結果(Terminal, ghci)
$ ghci GHCi, version 7.4.2: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> :module +Control.Arrow Prelude Control.Arrow> :type second second :: Arrow a => a b c -> a (d, b) (d, c) Prelude Control.Arrow> second (10+) (1,2) (1,12) Prelude Control.Arrow> second (10-) (1,2) (1,8) Prelude Control.Arrow> :type (,) (,) :: a -> b -> (a, b) Prelude Control.Arrow> (,) 1 2 (1,2) Prelude Control.Arrow> :type (,,) (,,) :: a -> b -> c -> (a, b, c) Prelude Control.Arrow> (,,) "haskell" 1 True ("haskell",1,True) Prelude Control.Arrow> :quit Leaving GHCi. $
入出力結果だけみると、Control.Arrowのsecondは第1引数に渡された関数(型クラス、Arrowのインスタンス)を2つの要素のタプルの2個目だけに適用する関数ってことでいいのかな。。「:type second」で調べてみたものの、dっていうのがでてきてよく分からないまま。
関数「(,)」と「(,,)」はそれぞれ2つの引数、3つの引数でそのタプルを返す関数みたい。
0 コメント:
コメントを投稿