lazinessに関するmadokan1001のブックマーク (2)

  • 遅延性 · What I Wish I Knew When Learning Haskell (日本語訳)

    seqとWHNF いちばん外側のコンストラクタやラムダがこれ以上簡約できない場合、項は弱頭部正規形 (weak head normal-form, WHNF) であると言います。完全に評価されていて、中に入っているすべての部分式とサンクが評価されている場合、正規形 (normal form) であると言います。 -- 正規形 42 (2, "foo") \x -> x + 1 -- 正規形でない 1 + 2 (\x -> x + 1) 2 "foo" ++ "bar" (1 + 1, "foo") -- 弱頭部正規形 (1 + 1, "foo") \x -> 2 + 2 'f' : ("oo" ++ "bar") -- 弱頭部正規形でない 1 + 1 (\x -> x + 1) 2 "foo" ++ "bar" Haskell では、通常の評価はコアの case 文の外側のコンストラクタで

    madokan1001
    madokan1001 2022/05/31
    “strict”
  • Scala 関数引数の遅延評価 - 追憶行

    式評価のskip、実行について 式評価の基準について。 // falseで条件外となるので{println("!!"); true}は評価されない scala> false && { println("!!"); true } res1: Boolean = false // {println("!!"); true}が評価され、式結果はtrueとなる scala> true && { println("!!"); true } !! res2: Boolean = true // !!は出力されるが、true && falseが評価され、式結果はfalseとなる scala> true && { println("!!"); false } !! res3: Boolean = false //上記を参考にすると以下の挙動も簡単に理解できる。 scala> true || { print

    Scala 関数引数の遅延評価 - 追憶行
  • 1