2015年3月6日金曜日

開発環境

コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)(セイフ・ハリディ (著)、ピーター・ヴァン・ロイ (著)、Peter Van-Roy (著)、 Seif Haridi (著)、羽永 洋 (翻訳) 、翔泳社、原書: Concepts, Techniques, and Models of Computer Programming(CTM))の第部(一般的計算モデル)、第3章(宣言的プログラミング技法)、3.10(練習問題)、8.(反復的append))を解いてみる。

8.(反復的append))

コード(Emacs)

declare Reverse
fun {Reverse Xs Ys}
   case Xs
   of nil then Ys
   [] X|Xr then {Reverse Xr X|Ys}
   end
end

fun {ReverseAppend Xs Ys}
   case Xs
   of nil then Ys
   [] X|Xr then {ReverseAppend Xr X|Ys}
   end
end

fun {Append Xs Ys}
   {ReverseAppend {Reverse Xs nil} Ys}
end

{Browse {Append [1 3 5 7 9] [2 4 6 8 10]}}
{Browse {Append [1 2 3 4 5 6 7] [8 9]}}
{Browse {Append [1 2] [3 4 5 6 7 8 9]}}

0 コメント:

コメントを投稿