たとえば、asciibox の次の列の位置を見つける関数を作成しました。
+-----++---++---+
| a || b || c |
+-----++---++---+
ボックス b は列 "pseudo code " {length (box a)} から始まり、ボックス c は疑似コード {length box a + length box b} から始まる必要があります。
だから私はこの関数を書いた
f:: [Int]->[Int]->[Int]
f (x:xs) [] = f xs [x]
f [] ys = ys
f (x:xs) ys = f xs (ys++[x+ last ys])
それは私が欲しいものを私に与えます
f [23,24,25] []
ghci> [23,47,72]
他のアルゴリズムが可能かどうか知りたいです。「折りたたみ」または「展開」またはおそらく「反復」による解決策はありますか
ありがとう