コンピュータプログラミングの概念・技法・モデル
(IT Architect' Archive
クラシックモダン・コンピューティング6)
(IT Architects’Archive CLASSIC MODER)
(翔泳社)
セイフ・ハリディ (著), ピーター・ヴァン・ロイ (著)
Peter Van-Roy (著), Seif Haridi (著), 羽永 洋
原書: Concepts, Techniques,
and Models of Computer Programming
開発環境
- OS X Yosemite - Apple (OS)
- Emacs (Text Editor)
- Oz (プログラミング言語)
- Mozartプログラミングシステム(Mozart 2) (実装)
コンピュータプログラミングの概念・技法・モデル(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(練習問題)、13.(行列操作)を解いてみる。
13.(行列操作)
コード(Emacs)
declare T Mul
fun {T Xs}
fun {Add Xs Ys}
case Xs
of nil then Ys
[] X|Xr then
case Ys
of nil then [X]|{Add Xr Ys}
[] Y|Yr then (X|Y)|{Add Xr Yr}
end
end
end
in
case Xs
of nil then nil
[] X|Xr then {Add X {T Xr}}
end
end
fun {Mul Xs Ys}
fun {Add Xs Ys}
case Xs
of nil then 0
[] X|Xr then
case Ys
of Y|Yr then X*Y+{Add Xr Yr}
end
end
end
fun {Row Xs Ys}
case Ys
of nil then nil
[] Y|Yr then {Add Xs Y}|{Row Xs Yr}
end
end
in
case Xs
of nil then nil
[] X|Xr then {Row X {T Ys}}|{Mul Xr Ys}
end
end
{Browse {T [[1 2 3]
[4 5 6]]}}
{Browse {Mul [[1 2 3]
[4 5 6]]
[[1 2]
[3 4]
[5 6]]}}
0 コメント:
コメントを投稿