タグ

haskellに関するkjw_junichiのブックマーク (2)

  • Strict Haskell - あどけない話

    次のバージョンである GHC 8.0 では、正格評価用のプラグマして Strict と StrictData が提供されます。環境を作ってみたので、少し試しました。 以下のファイルを用意します。 {-# LANGUAGE DeriveFunctor #-} module A where data List a = Nil | Cons a (List a) deriving (Eq,Functor) xs :: List Int xs = Cons 1 (Cons 2 Nil) 注意: トップレベルの束縛とローカルの束縛では挙動が違います。Strict が効くのは、ローカルの束縛です。なので、GHCi で let を使って試します。 評価が遅延しているかは、GHCi の :sprint コマンドで確かめられます。GHC 7.8 以降の GHCi では MonomorphismRestric

    Strict Haskell - あどけない話
  • Rubyistに贈るHaskell入門 - Qiita

    Haskell分からない人が贈るHaskell入門 高階関数におけるRubyのブロックとHaskellの関数の違いに関してかなり雑でしたので、 "Rubyistに贈るHaskell入門"がちょっと微妙だったので補足記事その1 こちらの補足記事を併せて読むことをオススメします。 Rubyと一緒なら怖くない! Haskellは関数型言語です。 「関数型」、この単語を聞いた時点で回れ右してオブジェクトの世界に向かって全力疾走したくなりますが、Rubyは関数型言語にも影響を受けている言語です。 ならばRubyで関数型の概念を理解することができるかもしれない! 関数型の特徴 関数型にはいくつかの特徴がありますが、今回は以下の特徴をRubyによって説明します。 高階関数 カリー化 関数の部分適用 関数合成 これらの雰囲気をRubyでつかみ、Haskellへの第一歩としましょう。 高階関数 おめでとうご

    Rubyistに贈るHaskell入門 - Qiita
  • 1