2015年3月14日土曜日

開発環境

コンピュータプログラミングの概念・技法・モデル(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(練習問題)、16.(末尾再帰畳み込み)を解いてみる。

16.(末尾再帰畳み込み)

コード(Emacs)

declare

fun {F L1 L2}
   fun {Iter L1 L2}
      case L1
      of nil then nil
      else
         X Xr Y Yr
      in
         X|Xr=L1
         Y|Yr=L2
         (X#Y)|{Iter Xr Yr}
      end
   end
in
   {Iter L1 {Reverse L2}}
end

L1=[x1 x2 x3 x4 x5]
L2=[y1 y2 y3 y4 y5]

{Browse {F L1 L2}}

0 コメント:

コメントを投稿