2013年2月18日月曜日

開発環境

Real World Haskell』(Bryan O'SullivanJohn GoerzenDon 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 コメント:

コメントを投稿