本を読む

読書やコンピュータなどに関するメモ

Clojureでn進数を作るCodeIQ問題に勝手回答してみる

 このあいだCodeIQでClojureの問題が出てました。

 転職意思がない方の挑戦はご遠慮を、とのことだったので、“問題チラ見”を使って、チャチャっと手元で書くだけ書いてみました。受付期間が終了になったようなので、晒してみます。Clojure版とRuby(>= 2.0)版です。

 もうチラ見できなくなってますが、与えられた文字の集合を使ってn進数で表した数の遅延リストを作るという問題です。上のencoded-num-seqは、問題文をそのままコードにしたような素朴な実装です。

 で、nthマクロは本来不要なのですが、問題に以下の例があったので対策として追加しました。普通に実装すると、10000000(1千万)回、無駄な計算をしてしまうので。もろにチートです。

(nth (encoded-num-seq 0 "ABC") 10000000)
→ "CAACBBAABBACBAB"

 Ruby版は、Ruby 2.0でEnumerator::Lazyが入ったので、ほぼそのまま移植してみました。さすがにnthは再現していませんが。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/1148-e95c2d92

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad