タグ

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

タグの絞り込みを解除

haskellに関するteppeyのブックマーク (7)

  • GitBook – Knowledge management for technical teams

    GitBook brings all your technical knowledge together in a single, centralized knowledge base. So you can access and add to it in the tools you use every day — using code, text or even your voice.

    GitBook – Knowledge management for technical teams
  • 遅延評価とはなにか、そしてモナドの話 - Qiita

    TL;DR 関数は呼び出されるまで評価されない、というのは当然の性質だ。 正格評価を行う言語でも、クロージャーがあれば遅延評価の挙動を模倣できる。 遅延評価という言葉の意味を拡大して使うのは危険なのではないか。 様々な計算効果を持つプログラムは、クライスリ圏の射と見なせる。 クライスリ圏を作るためのものがモナドだ。 計算効果を自由に組み合わせられるHaskellは「究極の手続き型言語」だ。 モナドは(普通の意味では)遅延評価ではない。 事の発端 「純粋関数型」 &「副作用」というトリッキーワードについて想うこと『裸の王様』を読みました。 じっと時を待ちます。この実装では、アクションとはこういう引数がなくて実行の時を今か今かと待ち構えている関数のことです。 でもまだその時ではありません。put に渡す文字列が来るまでじっと待ちます。雌伏のときです。 しかしあくまで結びつけるだけで、何もしませ

    遅延評価とはなにか、そしてモナドの話 - Qiita
  • Error vs. Exception - HaskellWiki

    There has been confusion about the distinction between errors and exceptions for a long time, repeated threads in Haskell-Cafe and more and more packages that handle errors and exceptions or something between. Although both terms are related and sometimes hard to distinguish, it is important to do it carefully. This is like the confusion between parallelism and concurrency. The first problem is th

  • Learn You a Haskell for Great Good!

    Hey yo! This is Learn You a Haskell, the funkiest way to learn Haskell, which is the best functional programming language around. You may have heard of it. This guide is meant for people who have programmed already, but have yet to try functional programming. The whole thing is completely free to read online, but it's also available in print and I encourage you to buy as many copies as you can aff

  • Haskell≠現場言語って? - HaHaHa!

    (元ネタはSoftwareDesign誌の9月号掲載の小飼弾さんのコラムです) Haskellは儂にとっては現場言語だけどなにか? < おめぇ.それしか書けないだろうがっww catごとき(というとcatに失礼だよなぁ),スクリプトを書くというのがすでに現場思考じゃないと思うけどなぁ.cat相当の機能を使いたければcatコマンド使えばいいじゃん.perl起動する必要もないんでないの?などというツッコミをしたくなるなぁ.もうちょっと別の例なかったのかなぁ. というのはさておき,もしどうしても書けというなら,データを構成することを考えるのではなく,基は関数を組み合わせることを考えながらプログラムを書くと思うよHaskell書く人なら.UNIX文化で言うところの(?)フィルタ系コマンドならなおさら.Haskellerがいつも以下のように書いているとはとても思えないねぇ. import Syst

    Haskell≠現場言語って? - HaHaHa!
  • cabalコマンドの使い方 - あどけない話

    Cabal は Haskell のパッケージ管理システムです。枠組みとしての Cabal と、コマンドの cabal があり、間違いやすいです。 Cabal は、パッケージをコンパイルし、インストールする枠組みです configure, make, make install に相当 cabal は、パッケージの依存関係を調べ、必要なパッケージをダウンロードして、インストールするためのコマンドです cabal-install と呼ばれることもあります ここでは、コマンド cabal の使い方を説明します。 インストール 各 OS のパッケージ管理システムを使って cabal をインストールしましょう。GHC を扱っているパッケージ管理システムであれば、cabal にも対応しているはずです。 MacPorts では、以下のようにします。 % sudo port install hs-cabal

    cabalコマンドの使い方 - あどけない話
  • 遅延評価とIO - あどけない話

    僕は今、プログラマーとしての幸福感に満たされている。遅延評価を習得できたと思えるからだ。 遅延評価 なぜ関数プログラミングは重要かには、遅延評価の利点を以下のように説明している。 停止条件はループの体とは切離すことができ、強力なモジュール化が可能となる。 例として載っている「ニュートン-ラプソン法による平方根」は、若干難しいので、簡単な別例を示そう。Haskell には、第一引数の数だけ、第二引数を繰り返す関数 replicate がある。 > replicate 3 'a' → "aaa" これを普通に実装するとこうなる。 replicate 0 c = [] replicate n c = c : replicate (n-1) c Haskell 以外で実装する場合、きっとループを使うだろう。ただ、ここでは再帰かループかは問題ではない。 問題は、「結果を作る仕事」と「終了条件を判断

    遅延評価とIO - あどけない話
  • 1