CommonLisp Scheme Part13at TECH
CommonLisp Scheme Part13 - 暇つぶし2ch259:デフォルトの名無しさん
05/06/07 22:57:12
>>253-254
どうもすみません。勉強になりました
勉強ついでに、249のCコードをそのままLISPにしてみました
(defun tarai (x y z)
 (labels ((tarai-1 (x y zx zy zz) (if (<= x y) y
  (let ((z (tarai zx zy zz))) (tarai-1 tarai((1- x) y z) tarai((1- y) z x) (1- z) x y)))))
 (tarai-1 x y z z 0)))

そこで、let式を関数呼び出しに変えて
(defun tarai (x y z)
 (labels ((tarai-1 (x y zx zy zz) (if (<= x y) y
   (tarai-2 (x y (tarai zx zy zz)))))
   (tarai-2 (x y z) (tarai-1 tarai((1- x) y z) tarai((1- y) z x) (1- z) x y)))
 (tarai-1 x y z z 0)))

さらに、tarai-1呼び出しをlet式に変えてみました
(defun tarai (x y z)
 (labels ((tarai-2 (x y z)
  (let ((xx (tarai((1- x) y z)) (yy (tarai((1- y) z x)))
   (if (<= xx yy) yy (tarai-2 (xx yy (tarai (1- z) x y)))))))))
 (if (<= x y) y (tarai-2 x y z))))


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch