--.--
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

07.03
Tue
Lispの勉強兼僕の苦手な再帰のお勉強のために適当なの

再帰的な考えを使うのをLispで書いてみました

(defun collatz (n)
	(print n)
	(if (= n 1)
		1
		(progn
			(if (= (mod n 2) 0)
				(collatz (/ n 2))
				(collatz (+ (* n 3) 1))
			)
		)
	)
)

(defun fact (n)
	(if (= n 0)
		1
		(* n (fact (- n 1)))
	)

)

(defun fib (n)
	(if (or (= n 0) (= n 1))
		(progn
			(if (= n 0 )
				0
				1
			)
		)
		(progn
			(+ (fib (- n 2)) (fib (- n 1)))		
		)
	)
)

(defun sum (n)
	(if (= n 0)
		0
		(progn
			(+ n (sum (- n 1)))
		)
	)
)


(defun dcg (m n)
	(if (or (= m 0) (= n 0))
		m
		(dcg n (mod m n))
	)

)
スポンサーサイト

comment 0 trackback 0
トラックバックURL
http://telracsmoratori.blog.fc2.com/tb.php/121-13b053a6
トラックバック
コメント
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。