タグ

ブックマーク / bleis-tift.hatenablog.com (3)

  • JSX の進化速度が半端ない - ぐるぐる~

    気に入らない所を直して pull request 投げたら、取り入れられたので、8 日前に書いたエントリが過去のものとなっちゃいました。 関数型 以前の JSX では、関数型は function(: int): string のように書く必要がありました。 これはこれでそのまま使えるのですが、新たに (int) -> string という形式にも対応しました。 ちなみに、複数引数はカンマ区切りで (int, boolean) -> string のようになります。 カリー化された関数は、 function(: int): function(: number): string の代わりに (int) -> (number) -> string と書けます。 引数を囲むカッコは、(今のところ) 省略不可能です。 これには 2 つの理由があります。 この機能を追加したとき、JSX のパーサの能力

    JSX の進化速度が半端ない - ぐるぐる~
  • JSX のアレな所 - ぐるぐる~

    注意!このエントリは既に古いので、JSX の進化速度が半端ない - ぐるぐる〜もあわせて読んでください。最新のコードを参照するのが手っ取り早いです。 JSX なる言語がリリースされました。 この言語が謳っているのが、 高速 安全 簡単(生産性が高い、とも) という 3 点です。 高速と安全はまぁいいでしょう*1。 問題は、はたしてこの言語は簡単なのか?という点です。 簡単かどうかは人によるのでアレなのですが、まぁ一部の人にとっては簡単とは言えない (というか書く気がしない) 書き方を強制されるのです。 関数型 数値を受け取って文字列を返す関数を表す型は、JSX では以下のように書きます。 function(:number):string これ単体で見ると分かりやすそうな気配はします。 では、これ読めますか? function f(g: function(:number):number):

  • 遅延評価ってなんなのさ - ぐるぐる~

    何なんでしょうね。分かりません。 自分の頭の中をとりあえず整理するためのエントリなので、あなたの頭を混乱させるだけになるかもしれません。 もし混乱してしまったら忘れてください。え、無理?忘れてください。 自分の考えを明確にしたので、こちらをどうぞ。 遅延評価いうなキャンペーンとかどうか - ぐるぐる~ これは遅延評価ですか? 関数を渡すだけ // Scala def hoge(f: Unit => Int) = for (i <- 1 to 2) println(f()) (* F# *) let hoge f = for i in 1..2 do printfn "%d" (f()) この関数に渡す f は 2 回実行されます。そのため、f の中で画面出力をしていた場合、2 回出力されます。 これは遅延評価でしょうか?俺は違うと思います。 ここは多くの人で合意が取れると思ってます。 Sc

    遅延評価ってなんなのさ - ぐるぐる~
  • 1