タグ

haskellに関するmoqadaのブックマーク (5)

  • Haskellで生産性を高める-Pythonからの移行 | POSTD

    (注記:11/30、いただいた翻訳フィードバックを元に記事を修正いたしました。) 最近、Haskellでも生産性の高い作業ができるほどに、この言語を使いこなせるようになりました。定期的にPythonを使いもしますが、今ではWebプロトタイプ作成のほとんどをHaskellで行っています。それで、時間が経ってしまう前に、この言語の学習経験を通じて考えたことなどをまとめたいなと思っています。 データファースト これはどちらかというと動的言語から静的言語への移行に関しての考えなのですが、Haskellのデータ構造は、ほとんどの場合、データ宣言と型シグネチャで提示されるのに対し、Pythonの場合、おおむねコードによって暗黙に定義されます。 Pythonの関数について私が初めて抱いた考えは、「コードに何が書かれているか?」でしたが、Haskellでは、「データはどう見えるか? この関数は___を受け

    Haskellで生産性を高める-Pythonからの移行 | POSTD
  • Haskell風AltJSのベンチマーク - Qiita

    みんな大好きHaskell風altJS!みんな違ってみんな良いのですが、やはり気になるのは生成するjsの速度やサイズですね! 今回は竹内関数を使用してベンチマークを行ないました! エントリー javascript haste-0.4.3 fay-0.22.0.0 purescript-0.6.2 Elm-0.14 ghcjs-dev idris-0.9.15.1 ベンチマーク条件 ベンチマークには正格評価の竹内関数(Tarai)を使用した コードは以下のHaskell実装をベタ移植した1 2 コンパイルされたコードをuglifyjsにより圧縮した javascriptの実行にはnode-0.10.35を使用した ベンチマークは10回実行し、process.hrtime関数で計測した 実行環境はMac book air Mid 2011(メモリ4GB, CPU 1.8GHz Core i7)

    Haskell風AltJSのベンチマーク - Qiita
  • 第28回 例外やエラーに対する処理能力を加えるエラー・モナド

    Haskellの例外処理は,IOやSTMといった特定のモナドの内部でのみ扱えるようにデザインされています。しかし,こうした制限が行き届くのは,あくまで例外を捕捉し処理する場面に限られます。例外やエラーの発生する個所自体はこうした制限にはとらわれません。ありとあらゆる場所で発生する可能性のある例外やエラーに対する処理を,より統一的に扱うにはどうすればよいでしょうか? この問題に対する解決策として,第15回で説明したモナド変換子を利用できます。利用できる範囲はあくまでモナドの内部に限られますが,特定のモナドでしか例外を扱えないことと比べれば一歩前進でしょう。今回はモナド変換子を利用する2種類の方法を紹介します。 成功時と失敗時の情報を保持するEither型 第5回では,失敗する可能性のある計算結果を表すのにMaybe型を利用できることを説明しました。Maybeに対してモナドを定義することで,失

    第28回 例外やエラーに対する処理能力を加えるエラー・モナド
  • すごい Vim で Haskell を書こう ... の補足 - 反省はしても後悔はしない

    この記事は Vim Advent Calendar の 274 日目の記事です。昨日は id:osyo-manga さんの unite-highlight つくった でした。 はじめに 先週の日曜日(8/25)になごやまつりというイベントがあり、そこで Haskell を Vim で書く方法というネタで LT をしてきました。発表するのが決まったのが前日ということもありちゃんとまとまった内容になっていなかったので、エントリで少し補足を書きたいと思います。 すごいVimでhaskellを書こう@なごやまつり from cohama とりあえず、インデントをどうにかする 発表では「Haskell のデフォルトのインデントプラグインは全然ダメ」という発言をしましたが、間違いでした。訂正します。 「Haskell のデフォルトのインデントプラグインなんてなかった!」 まさか、ないとは...。 と

    すごい Vim で Haskell を書こう ... の補足 - 反省はしても後悔はしない
  • Haskell for Web Developers

    Haskell for Web Developers This blog post is somewhat dated and may not reflect changes to the ecosystem since 2013. The perpetual myth persists that Haskell cannot be used for “real world applications”. Normally real world is usually left undefined in such a discussion, but can often be taken to mean that Haskell is not suited for database and web development work. Haskell has a rich library ecos

  • 1