インターネットを駆使して
Google先生を駆使して
第一の課題はHello World…は面白く無いので
AOJ…と行きたかったが対応してないのでProjectEulerを
LingrのチャットルームではClojureBotなるものがあり、チャットでClojureのコードを発言するとそのまま実行してくれた
それを使って(str 'HelloWorld)くらいは遊んでいたけど、まともに頭をうならせてかいたのは初めて
以下、全ての対話をメモっておく
user> (str 'halloworld) "halloworld" user> (defn is-3multiple? [x] (if((rem x 3)==0))) nil user> (defn is-multiple? [x r] ((rem x r)==0)) nil user> (defn is-multiple? [x r] (= (rem x r) 0)) #'user/is-multiple? user> (defn is-3or5multiple [x] (if (is-multiple? x 3) x (if (is-multiple? x 5) x 0))) #'user/is-3or5multiple user> (defn PE0001 [] (apply + (for [x (range 1000)] is-3or5multiple))) #'user/PE0001 user> (PE0001) (PE0001) nil user> (defn PE0001 [] (apply + (for [x (range 1000)] (is-3or5multiple x)))) #'user/PE0001 user> (PE0001) 233168 user> (defn is-3or5multiple [x] (if (or (is-multiple? x 3) (is-multiple? x 5)) x 0)) #'user/is-3or5multiple user> (PE0001) 233168
1~2 とりあえずテストのHello World
3~5 数値が3の倍数か調べるコードを書いて失敗
ifの条件式がおかしい
6~8 数値が任意の数値の倍数か調べるコードを書いて失敗
ifの条件式がまだおかしい
9~10 やっとおかしいのに気づく
11~12 数値が3か5の倍数か調べるコードを書く
13~14 0~1000の3か5の倍数の数値の合計を調べるコードを書く
15~18 失敗 PE0001の最後がおかしい
19~20 修正
21~22 実行、成功 正しい答えである233168が出る
23~24 orが使えることをLingrで教えてもらい、実践する
25~26 実行、成功
0 件のコメント:
コメントを投稿