Pyon's Diary


舊 令和貳年庚子睦月拾漆日 (月・晴)

疑似リストの結合

すごいH本の7.4節に出てくる ^++ 函數の動作が良く判らないので書き下してみる.

^++ の定義は以下の通り.

infixr 5 ^++
(^++) :: List a -> List a -> List amzn
Empty ^++ ys = ys
(x :-: xs) ^++ ys = x :-: (xs ^++ ys)

實際の疑似リストで書き下してみる.

(3 :-: 4 :-: 5 :-: Empty) ^++ (6 :-: 7 :-: Empty)
    = 3 :-: ((4 :-: 5 :-: Empty) ^++ (6 :-: 7 :-: Empty))
    = 3 :-: (4 :-: ((5 :-: Empty) ^++ (6 :-: 7 :-: Empty)))
    = 3 :-: (4 :-: (5 :-: ((Empty) ^++ (6 :-: 7 :-: Empty))))
    = 3 :-: (4 :-: (5 :-: (6 :-: 7 :-: Empty)))
    = 3 :-: 4 :-: 5 :-: 6 :-: 7 :-: Empty

因みに++函數の定義をHoogleで調べると以下の通りだつた.

(++) :: [a] -> [a] -> [a]
(++) []     ys = ys
(++) (x:xs) ys = x : xs ++ ys

晩御飯

  • 鮟鱇鍋の出汁で雑炊
comments powered by Disqus