タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

yuguiとFunctionalに関するyuguiのブックマーク (2)

  • Concurrent Clean : L.L.Ring : Collatz予想の収束 - lethevert is a programmer

    当はRound 2は観戦にしておこうと思っていたのだけれど、 http://idm.s9.xrea.com/ratio/2006/07/12/000484.html を見て、なにか挑戦された気がしたので、結局書いた。 何を挑戦された気がしたかというと、「問題を読み替えないで実装するためには、副作用が必須だ」という主張(というように私は理解したのだけど、間違っていたらごめん)。だから、純粋関数型だと読み替えないで実装するのは難しいのじゃない?(意訳)というような内容をみて、「これは挑戦に違いない」と勝手に思い込んだのでした。 - まずは、Collatz予想の1ステップ分の関数定義。これはシンプルに。 f 1 = 1 f n | isEven n = n/2 = 3*n + 1さて、これをどうすれば言いかというと、Cleanには(そしてHaskellにも)、与えられた関数を何度も適用しながら

    Concurrent Clean : L.L.Ring : Collatz予想の収束 - lethevert is a programmer
    yugui
    yugui 2006/07/13
    挑戦を受けて立ってくれたハッカーがいた。そうか、非正格だから? 無限列でも構わず作ってしまえばいいのか。
  • Re: String#succ - babie, you're my home

    元々は Excel でセルの座標指定の為に列名を作ろうと思ったけど、途中で「あ、要らんわ」(数値で指定できた)と気づき、放っておいたのを作ってくれた方がいましたよ。勉強になります。 再帰を使って:「指定した回数分String#succ - I sort my thought...」 Ruby の再帰ってスタックオーバーフロー起こさないようにする方法は無いのかな? continuation ワカラナス。scheme やってるからそのうちぶつかるだろう。 汎用的に:「任意のメソッドを指定した回数分繰り返すメソッド - I sort my thought...」 count = count.to_i ってのは防御的プログラミングというやつか? 引数の並びは逆の方がいいよなぁ("a".repeat(3, :succ) じゃなくて "a".repeat(:succ, 3))と思ったけど、繰り返すメソ

    Re: String#succ - babie, you're my home
  • 1