@ has joined the channel
foo bar ''Baz
$
の感覚でいると infixl 4 <$>
で引っかかってしまう……x = 42
のように Haskell で =
を使った場合は何て読むのが正しいのでしょう?定義とかですかね?それが実際に使われているモデルだから、というのは十分な動機になると思います。
その位置を束縛する抽象の位置を指示する指標ですから,変数とは別の機能これは同意しかねます…私ならそれこそが束縛変数の定義だと言います。
そのモデルが採用されたモチベーションは何かこれはまさに遅延評価の動機、つまり「使わない計算は評価しない」「評価した結果である値を共有する」(
それこそが束縛変数の定義だと言います。はい,それは同意です.私の方が変数と変数名,あるいは変数と変数の出現を混同しています.
サンクの値をボトムとみなしていいというのはまったく聞いたことがありません。⊥値の導入の動機は,「Well-formedな式は例外なく値を表示(denote)する」と単純に考えるために特定の型の特定の値として定義されない⊥値があれば都合がよい,というものです.inf :: Integer; inf = inf + 1とあれば,infの表示(denote)する値は確定できない値⊥です.評価機計算中は表示(denote)する値は確定できないので,そのことを⊥とみなしても不都合はないように思います.
An expression evaluates to a value and has a static type.に則って考えた場合,Haskellでは let x = 1 2 はxに(1 2を計算した)値を束縛しているのではなく,言うとしたら(call by name的には)1 2という式自体への束縛,または(call by need的には)1 2という計算自体への束縛というのが正しいと思います(なので記事の値への束縛というのが誤った使用法というのはHaskellでは誤りというのに同意です).なお,Haskellではcaseも(Formal Semanticsに則れば)まず対象の式を変数に束縛する変換がなされるので同じ議論を適用できると思います(これもつまり記事と同意見です): https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-610003.17.3