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)の4章(関数プログラミング)の4.6(ループをどのように考えるか)の練習問題3.を解いてみる。
3.
コード(BBEdit)
Sample.hs
-- file: Sample.hs myConcat :: [[a]] -> [a] myConcat xs = foldr (++) [] xs a = [] b = [1] c = [1,2] d = [1,2,3] a' = [a] b' = [b] c' = [c] d' = [d] e = [a,b] f = [b,c] g = [c,d] h = [d,a] i = [a,b,c] j = [b,c,d] k = [c,d,a] l = [a,b,c,d]
入出力結果(Terminal)
$ 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> :load Sample.hs [1 of 1] Compiling Main ( Sample.hs, interpreted ) Ok, modules loaded: Main. *Main> myConcat a' [] *Main> myConcat b' [1] *Main> myConcat c' [1,2] *Main> myConcat d' [1,2,3] *Main> myConcat e [1] *Main> myConcat f [1,1,2] *Main> myConcat g [1,2,1,2,3] *Main> myConcat h [1,2,3] *Main> myConcat i [1,1,2] *Main> myConcat j [1,1,2,1,2,3] *Main> myConcat k [1,2,1,2,3] *Main> myConcat l [1,1,2,1,2,3] *Main> concat a' [] *Main> concat b' [1] *Main> concat c' [1,2] *Main> concat d' [1,2,3] *Main> concat e [1] *Main> concat f [1,1,2] *Main> concat g [1,2,1,2,3] *Main> concat h [1,2,3] *Main> concat i [1,1,2] *Main> concat j [1,1,2,1,2,3] *Main> concat k [1,2,1,2,3] *Main> concat l [1,1,2,1,2,3] *Main> :quit Leaving GHCi. $
0 コメント:
コメントを投稿