タグ

haskellに関するnbqx69のブックマーク (54)

  • HaskellとDSL - あどけない話

    LL Planets の「メタプログラミングの光と闇」で Haskell について話してきました。PerlPythonRuby が概ね内部 DSL を作る話だったのに対し、Haskell では外部DSLを内部に埋め込むという話をしました。短い時間で説明不足になった感があるので、この記事で二点ほど補足します。 Haskell では文法がうまく設計されており、コードを書けば自然とDSLっぽくなるので、わざわざ内部DSLなんて言わない。それよりもコンビネータという考え方を学ぶ方が新しい視野がひらけてよい。 Haskell ではパーサーを作るのが簡単。だから自分で言語を作るのも簡単。その言語を外部ファイルから読み込んでもいいし、HERE DOCUMENT のように内部に貼付けることもできる。 関数を二項演算子として扱う Haskell では関数をバッククォートで囲むと二項演算子になります。 i

    HaskellとDSL - あどけない話
  • Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話

    命令型言語の JavaRuby がユーザスレッドからカーネルスレッドに移行したのとは対照的に、関数型言語の Erlang や Haskell では軽量なユーザスレッドを提供することに成功しています。僕は、この違いが何から生じているのか理解したいと思っています。この記事では、これまで調べたことをまとめます。 軽量なユーザスレッドは Erlang が有名ですが、Haskell (GHC)でも利用できることを重ねて強調しておきます。Haskell の方が Erlang よりも速いようです。追記:フェアな比較ではないようなので、話半分で参照して下さい。 Rubyの場合 Ruby 1.8 まで提供されていたユーザスレッドは、軽量とは言えませんでした。その理由は、ユーザスレッドをコンテキストスイッチさせる際にスタックをコピーしていたからです。Rubyソースコード完全解説の第19章 スレッドによれ

    Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話
  • Why Haskell is Kinda Cool

    I’ve been using Haskell for a while, trying to apply it to large-ish projects. Learning it has been time consuming, but rewarding. I’ve stuck with it this long because: most classes of bugs are caught at compile time, due to strict type system and pure code (immutability) – code tends to work right the first time it’s run! haskell types are very powerful: using them to design and describe software

  • 使ってみよう Enumerator - あどけない話

    Enumerator Package - Yet Another Iteratee Tutorialは、Iteratee: 列挙ベースのI/Oよりは分かりやすいのですが、やっぱりよく分かりません。なぜなら、僕は使い方を知りたいのに、作り方が書いてあるからです。そこで、Enumerator ライブラリの使い方を簡単に紹介します。 登場人物 Iteratee 入力をもらって計算をします run_ で実行します IO モナドが指定されていれば、副作用を起こせます オートマトンと考えると分かりやすいです Iteratee 同士は (>>=) で合成できます Iteratee >>= Iteratee → Iteratee Enumerator Iteratee と ($$) で合成することにより、新たな Iteratee になります Enumerator $$ Iteratee → Iterate

    使ってみよう Enumerator - あどけない話
  • Haskell から見た node.js - あどけない話

    誤訳 以前、「サーバサイドJavaScriptのNode.js、最初はCやHaskellを検討し失敗。開発者ライアン・ダール氏へのインタビュー」という記事が twitter で話題になっていました。 ―― なぜJavaScriptを選んだのでしょう? ダール氏 実は最初は違いました。最初はC、Lua、Haskellなどで失敗していました。そんなときV8(Chromeが採用しているJavaScriptエンジン)に気がついて、やろうとしていることに対してJavaScriptが完璧な言語だと突然ひらめいたのです。 ただでさえ、Haskell は遅いと誤解されているのに、このような悪意さえ感じらえる訳だと、さらに誤解が深まりそうです。原文にはこう書かれています。 Dahl: Originally I didn’t. I had several failed private projects doi

    Haskell から見た node.js - あどけない話
  • A Hint of Hubris

    Ruby is a highly dynamic language with impressive capabilities for runtime redefinition of classes, objects, methods, and variables. Haskell, on the other hand, is a purely functional language that confines mutation within a sophisticated static type system. Given their many differences one or the other may be more suited for whatever problem you might be working on (see polyglot programming), but

    A Hint of Hubris
  • RubyからHaskellを呼び出したくてHubrisをインストールした - 岩本隆史の日記帳(アーカイブ)

    Hubrisという、RubyからHaskellのコードを呼ぶためのブリッジがあります。HaskellパッケージとRubyライブラリで構成されており、現在のバージョンは0.0.3です。 とある理由から、このHubrisで遊んでみようと思ったのですが、Haskellパッケージのインストールにかなり手こずったため、ポイントをまとめておきます。ちなみにRubyライブラリのほうは「gem install hubris」で簡単に入りました。 今回まとめる内容は、あくまで僕の環境(CentOS 5)でうまくいったもので、他の環境ではどうだか分かりません。誤った記述があるかもしれませんので、お気づきの際はぜひお知らせください。 Hubrisで遊びたくなった理由については、後日書くつもりです。 ざっくりした流れ $ wget http://hackage.haskell.org/packages/archi

    RubyからHaskellを呼び出したくてHubrisをインストールした - 岩本隆史の日記帳(アーカイブ)
  • Waving Goodbye - Rethrick Construction

    If you are using either MySpace or Facebook then you have surely heard about the MySpace and Facebook Messenger apps. They are the two biggest mobile messaging programs on the planet today. So what is so special about these two popular cell phone programs? How does one compare to the other? In this article we will compare two of the most popular mobile communication programs of the two biggest gia

  • Three Haskell web frameworks « Aidan Delaney’s weblog

    This model-view-controller pattern has been kicking around for quite some time now. It’s a nice way of separating concerns in many applications including web apps. And, a modern web-framework should both let you separate concerns and, ideally, bridge the gap between your programming model and data storage model. Some really nice people have done this in Ruby and Python and Python and …. well you g

  • fogus: 10 Haskell One Liners to Impress Your Friends

    Send More Paramedics λ λ λ Fogus' Thoughts on life, programming, and thinking ❤ c clj erl pl frink fth cl org pure icl qi ❤ Follow me on Twitter... or RSS... Run this blog in mobile 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 Jun 3, 2011 Following the meme (scala, ruby, clojure, python, f#, coffeescript, c#) I would truly appreciate

  • Haskellの開発ツール (2011年版) - あどけない話

    Haskell開発に関係するツールをとりとめもなく列挙してみます。 エディタ/IDE 僕は、Emacs と haskell-mode と ghc-mod を組み合わせて使っています。haskell-mode は、行頭揃えの機能がしょぼいので、作り直したいと思っています。 IDE のバックエンドとしては、scionがありますが、使ったことがないので説明できません。(僕は ghc-mod で十分だと思っているので。) Leksah とか yi とかも聞きますが、使ったことがないので知りません。(いや、yi はちょっと使ったことがありますけど。) 興味のある人は自分で調べて下さい。 マニュアル 関数のマニュアルが読みたくなったら、GHCについてくるモジュールの一覧とhackageDBから探して下さい。ghc-mod を使っていれば、一発でブラウザに表示できます。 探すのが面倒なら、google

    Haskellの開発ツール (2011年版) - あどけない話
  • Minimal Lisp in Haskell — Gist

    Forks gist: 950223 by pheuter Minimal Lisp in Haskell created Sat Apr 30 20:34:59 -0700 2011 gist: 950397 by jneira Minimal Lisp in Haskell created Sun May 01 03:26:26 -0700 2011 gist: 950412 by MayDaniel Minimal Lisp in Haskell created Sun May 01 03:50:26 -0700 2011 gist: 950423 by fogus Minimal Lisp in Haskell created Sun May 01 04:13:33 -0700 2011 gist: 950445 by Peaker Minimal Lisp in Haskell

  • https://archives.haskell.org/projects.haskell.org/ghc-iphone/downloads/GHC-iPhone.pdf

  • Haskell: Monadが45年前に発明されていた話 - karasuyamatenguの日記

    http://article.gmane.org/gmane.comp.lang.haskell.cafe/84865 「A correspondence between ALGOL 60 and Church's lambda notation」という名の論文の中で、P. J. Landinという者がMonadをはじめ、call/cc、 streams、 delayed evaluations、 co-routinesなどの出現を予告していたと言う。詳細はチンプンカンプンで訳せないので関心のある人は元記事を読んでください。 ちなみに上の投稿をしたokmijのolegという人もかなり面白い。

    Haskell: Monadが45年前に発明されていた話 - karasuyamatenguの日記
    nbqx69
    nbqx69 2010/12/30
    monad]
  • 型推論はどのようにして実装されているか - ラムダプラス+の紹介 -

    この記事は Haskell Advent Calendar jp 2010 のために書かれた物です。(20日目) 型推論は簡単 ML や Haskell のような言語の型推論は、型推論を知らないみなさんが考えているよりは遥かに簡単な物です。大雑把に言ってしまえば、構文木全体を探索して、同一である事が明らかな型同士の単一化をしていけば型推論できてしまうのです。 型推論の難しい所その1 - 多相型 しかし、型推論にも難しい事が無いわけではありません。まず最初の難関としては多相型が挙げられます。 ML や Haskell では let などの変数束縛に対して多相型が導入されています。式の中でこれらの変数が出現すると、その型の型変数(確定していない部分)を全て付け替える操作が発生します。 しかし、確定していない部分を付け替えるという事は、最終的に元の型が確定した後にその操作をしなければ、型を正しく

  • Run Xmonad on Snow Leopard - OMG Rainbow!

  • Mac OS X 10.6 でcabal-installを設定する - YAMAGUCHI::weblog

    動機 HaskellをむりやりSnow Leopardで動くようにしたのはいいけれど、cabalがないと面倒なので設定した。 前提 Haskellでは同じ発音をする、"Cabal"と"cabal"があります。2者は大きく違います。注意。 cabalコマンドの使い方 - あどけない話 Cabal Haskellで書かれたパッケージ用のmakeみたいなもの。パッケージ内にはSetup.lhsやSetup.hsというビルド用のファイルがあるので基的には下記の流れでインストール。 $ runhaskell Setup configure $ runhaskell Setup build $ sudo runhaskell Setup install詳しくはhelpを見てください。(runhaskell Setup --help) cabal (cabal-install) Haskell向けのパ

    Mac OS X 10.6 でcabal-installを設定する - YAMAGUCHI::weblog
  • Haskell でダックタイピング 、色々な型を混ぜて配列を作る。 - 言語ゲーム

    動的型言語の特徴の一つに、配列に色々な型のデータを混ぜられる事があります。いわゆるダックタイピングというやつです。例えば Javascript では ["1", 2, 3.4] のような配列を作る事が出来ます。Haskell のような強い型付けのある言語でこれを実現する方法を勉強したので書きます。 目標として、配列の中にあるデータを文字列として連結する事にします。Javascript で言うと、 append = function (xs) { var result = xs[0]; for (var i = 1; i < xs.length; i++) result += xs[i]; return result; } のような関数 append を作ります。append(["1", 2, 3.4]) の答えは "123.4" になります。 代数データ型を使う Haskell では直接リ

    Haskell でダックタイピング 、色々な型を混ぜて配列を作る。 - 言語ゲーム
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • Lisk - Lisp and Haskell

    I am personally sick of working with Haskell’s syntax.tl;dr: Scroll right to the bottom to read what Lisk is. Most of this post is complaining about Haskell’s syntax. I like Haskell’s syntaxI came to Haskell in early 2008. I wrote my first Haskell program and I didn’t like the look of what I had produced. I also didn’t like typing it. Compared to Scheme and Common Lisp, my previous languages of ch