■ lispでfizzbuzz
HelloWorldをやったばかりだというのに、入門書片手にfizzbuzz問題に挑戦してみた。
しかしまぁ、初めての言語ってむず痒いね。
(let
(
(fizz 3);let内で使える変数宣言
(buzz 5);同上
)
(do
(
( num 1 ( + num 1) )
;do内で使う変数宣言
;(変数名 初期値 1回のループの終わりに行う処理)
;複数個の宣言もできるらしい
)
( ( > num 100) nil );終了条件とdoの戻り値
(if ( equalp 0 (mod num fizz) )
;(if (条件式) (trueなら) (falseなら))
;(mod a b)でaをbで割ったときの剰余
(if ( equalp 0 ( mod num buzz) )
( print 'fizzbuzz );3で割りきれて5でも割りきれるならfizzbuzz
( print 'fizz );3で割り切れて5で割り切れないならfizz
)
(if ( equalp 0 (mod num buzz) )
( print 'buzz );3で割り切れないけど5で割り切れるならbuzz
( print num );3,5どっちでも割り切れないなら数値をそのまま表示
)
)
)
)
できているはず、多分。(
(fizz 3);let内で使える変数宣言
(buzz 5);同上
)
(do
(
( num 1 ( + num 1) )
;do内で使う変数宣言
;(変数名 初期値 1回のループの終わりに行う処理)
;複数個の宣言もできるらしい
)
( ( > num 100) nil );終了条件とdoの戻り値
(if ( equalp 0 (mod num fizz) )
;(if (条件式) (trueなら) (falseなら))
;(mod a b)でaをbで割ったときの剰余
(if ( equalp 0 ( mod num buzz) )
( print 'fizzbuzz );3で割りきれて5でも割りきれるならfizzbuzz
( print 'fizz );3で割り切れて5で割り切れないならfizz
)
(if ( equalp 0 (mod num buzz) )
( print 'buzz );3で割り切れないけど5で割り切れるならbuzz
( print num );3,5どっちでも割り切れないなら数値をそのまま表示
)
)
)
)
しかしまぁ、初めての言語ってむず痒いね。
0 件のコメント:
コメントを投稿