タグ

haskellに関するgologo13のブックマーク (29)

  • Elm - delightful language for reliable web applications

    Elm uses type inference to detect corner cases and give friendly hints. NoRedInk switched to Elm about four years ago, and 300k+ lines later, they still have not had to scramble to fix a confusing runtime exception in production. Learn more. -- TYPE MISMATCH ---------------------------- Main.elm The 1st argument to `drop` is not what I expect: 8| List.drop (String.toInt userInput) [1,2,3,4,5,6] ^^

  • http://tanakh.jp/pub/fp-tudoi-2012/tudoi.html

  • 本物のプログラマはHaskellを使う:ITpro

    筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)

    本物のプログラマはHaskellを使う:ITpro
  • 高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)

    (※)このページで紹介している事項は記事初出時点の情報に基づいたものです。ページはアーカイブとして掲載しています。 ツイート 2012年5月29日 IIJ-II技術研究所では、2009年の秋からMighttpd(mightyと読む)というWebサーバの開発を始め、オープンソースとして公開しています。この実装を通じて、マルチコアの性能を引き出しつつ、コードの簡潔性を保てるアーキテクチャにたどり着きました。ここでは、各アーキテクチャについて順を追って説明します。 ネイティブ・スレッド 伝統的なサーバは、スレッド・プログラミングという手法を用いています。このアーキテクチャでは、1つのコネクションを1つのプロセスかネイティブ・スレッドが処理します。 このアーキテクチャは、プロセスやネイティブ・スレッドを生成する方法で細分化できます。「プール」方式では、あらかじめ複数を起動しておきます。例としては

    高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)
    gologo13
    gologo13 2012/07/17
    web server アーキテクチャの比較がわかりやすい。でも、軽量スレッドってよくわからない。
  • Haskellの楽しみ:<br>手続き操作型というパラダイム

    Haskellの楽しみ: 手続き操作型というパラダイム田中英行 tanakh@preferred.jp 2011/11/09 技術交流会 @日ユニシス 自己紹介 田中英行 (@tanakh)(株)Preferred Infrastracture 研究開発部門社内ライブラリ pficommon https://github.com/pfi/pficommon分散機械学習フレームワーク jubatus http://jubat.us/Haskell愛好家2003~Learn You a Haskell for Great Good!訳してます日の概要 ・ Haskellは 簡単 ・ Haskellは すごい ・ Haskellは 面白い ・ Haskell は簡単ですごく面白い ・ Haskell は面白くてすごいものが簡単に作れる (あとモナドの話少し) 最近のHaskellの話題Yes

  • The Haskell Programmer's Guide to the IO Monad --- Don't Panic

    The Haskell Programmer’s Guide to the IO Monad — Don’t Panic — Stefan Klinger University of Twente, the Netherlands � EWI, Database Group CTIT Technical Report Stefan Klinger. The Haskell Programmer’s Guide to the IO Monad — Don’t Panic. Order-address: Centre for Telematics and Information Technology University of Twente P. O. Box 217 7500 AL Enschede the Netherlands mailto:a.m.annink-tanke@utwent

  • Haskellで作る超コンパクト音声認識システム

    音声認識人工知能の分野の中でも独自の進化をとげた分野で,良くも悪くもガラパゴス的と言われたりします. 特に大語彙連続音声認識を実現する既存のソフトウエアは大規模かつ複雑で,音声認識の専門家でさえも全体を理解して改良を加えることは必ずしも容易ではありません.このことは近隣分野と音声認識コミュニティを分断する障壁ともなっています. しかし音声認識を実現するアルゴリズム自体は,基的には実はそれほど難解なものではありません.ソフトウエアが複雑なのは,多分に計算量やメモリ量削減のための様々な工夫やCに代表される手続き型プログラミング言語の抽象化能力の限界に起因しています. 他方,ソフトウエア工学の分野では複雑な処理をコンパクトに記述可能な次世代プログラミングパラダイムとして,純粋関数型言語が研究されています.純粋関数型言語は長らく研究段階に留まっていましたが,近年はHaskellなど実用性の高

  • PTQ

    An implementation of Montague's PTQ (Proper Treatment of Quantification). It translates simple plain English sentences into formulas of intentional logic. [Skip to Readme]

    gologo13
    gologo13 2011/03/31
    モンターギュの生成文法
  • 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

  • Enumerator Package - Yet Another Iteratee Tutorial - Preferred Networks Research & Development

    バレンタインチョコ欲しい! 田中です。 Iterateeの素晴らしいチュートリアルを見つけたので、今回はその翻訳をお届けしようと思います。以前、The Monad Reader Issue 16 のiterateeの記事をベースにした解説記事を書いたのですが、こちらの記事はかなり概念的なところから始まり、結構天下り的にiterateeの定義を受け入れていたのに対して、こちらの記事は、一貫して具体例からの抽象化で話が進み、また易しく書かれているので、比較的理解しやすいと思います。また、実際の実装に即して解説されていますので、読み終えて即実際に使ってみることが出来るでしょう。 このチュートリアルを書かれたMichael Snoymanという方は、現在YesodというHaskellのWebフレームワークを精力的に開発されています。Yesodには実際にiterateeがふんだんに用いられており、そ

    Enumerator Package - Yet Another Iteratee Tutorial - Preferred Networks Research & Development
  • 型推論はどのようにして実装されているか - ラムダプラス+の紹介 -

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

  • 正格性解析 (Strictness Analysis) - ヒビルテ(2010-12-28)

  • Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記

    Haskell Advent Calendar jp 2010のためのエントリです(17日目). 6日目の id:camlspotterさんの 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた に対するカウンター(になってるかどうか分からないですが)みたいな感じです. 近くて遠い隣人:HaskellとOCaml OCamlはHaskellと違って副作用があり,更にHM型推論をもつためプログラマは質的な部分の記述に注力しつつ,コードのチューニングもできる. つまり働くHaskellプログラマがシリアスなソフトウェアを書く時に使えるほとんど唯一の選択肢だ.しかし,同じ静的型付けの関数型言語でありながら,OCamlとHaskellの見た目はかなり異なる. この記事では, HaskellプログラマがOCamlを使い始めると,どういうトラップにハマるかを書く. なかでも,

    Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

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

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • One-liner in Haskell - 純粋関数型雑記帳

    Haskellを現場言語にするために、こんなものを作ってみました。 hoe: Haskell One-liner Evaluator (名前には深い意味はありません。) Haskellでワンライナーをやろうという誰得なツールです。誰得ですが、ワンライナーでも、型があると便利なんではなかろうか、型を元にユーザの望みの動作が大体決定できるんではなかろうか、という発想を元に作られました。 Haskellのワンライナーは、ghc -e でも評価できますが、これは (Show a) => a か、 (Show a) => IO a な型しか評価できません。hoeでは、String -> String など、もっと色々な型を評価できます。そして、その型に応じていい感じの動作が自動的に選択されます。 例えば、idを入力すると、入力がそのまま出力されます。 $ cat tmp Hello, Haskell

    One-liner in Haskell - 純粋関数型雑記帳
  • Lazy I/O must go! - Iteratee: 列挙ベースのI/O - 純粋関数型雑記帳

    最近ちょっと気になるiterateeを勉強したので、日語の解説を書いてみます。と言いつつ、大部分が The Monad.Reader Issue 16 *1 からの引用です。 はじめに Iterateeと呼ばれる新たなI/Oの抽象化手法が、最近にわかに広まりつつあります。既存のI/Oが抱える問題を解決するべくOleg Kiselyovによって2008年頃に提唱されたiterateeは、新しい高性能webフレームワークsnap *2 や、hyena *3 で利用されています。また、HackagDB上にて、iterateeパッケージ*4、およびiterateeを利用できる様々なパッケージ *5 *6 *7 *8 が公開されています。 しかし、ドキュメントの少なさなどからiterateeがどういうものなのかよく分からないという人も多いようです。そういうわけなので、iterateeを易しく解説し

    Lazy I/O must go! - Iteratee: 列挙ベースのI/O - 純粋関数型雑記帳
  • はてなブログ | 無料ブログを作成しよう

    不在の4をもとめて 子どもの頃から、コレが気になっていました。 4飛ばし。 説明するまでもないかと思われますが、何らかの番号を割り振る際、「死」に通じる忌数字として「4」を無いことにするアレです。 子どもの頃、病院のエレベータで親に「なんで4号室がないん?」と尋ねてその理…

    はてなブログ | 無料ブログを作成しよう
  • ホーム(玄界) | RESEARCH INSTITUTE FOR INFORMATION TECHNOLOGY, KYUSHU UNIVERSITY

    九州大学情報基盤研究開発センターでは、全国共同利用施設として大規模で高速な計算環境による高度な計算サービスを学内外に提供しています。

  • Haskellと副作用の議論の続き - あどけない話

    twitter で続いている Haskell と副作用、および参照透明性の議論ですが、twitter ではコードを示しにくいので、ブログに書きます。これに対する返答は、twitter でも構いませんし、ブログに対するコメントでもいいですし、トラックバックでも OK です。 多くの人が納得できる説明が見つかるといいですね。:-) 副作用と参照透明性 僕はもともと命令型言語のプログラマーなので、「副作用」という言葉は命令型言語のプログラマーが使う意味で使っています。 Simon Peyton Jones さんは、Beautifull Code というの中で「副作用(side effect)とは、変更可能な状態を読んだり書いたりするような何か」と書いています。そして、副作用を表す型を IO a としています。 Brent Yorgey さんは、The Typeclassopediaで「IOモナ

    Haskellと副作用の議論の続き - あどけない話
  • Haskell で Y コンビネータ - あどけない話

    Haskell では、Y コンビネータが作れないと誤解している人がいるので、できることを示すと同時に、これまで学んだことをまとめてみます。 遅延評価を活かした Y コンビネータ 関数名を用いた再帰を使ってよいなら、Haskell では遅延評価のおかげで、Y コンビネータを定義である Y x = x (Y x) の通りに書けます。 y :: (a -> a) -> a y x = x (y x) Y コンビネータ用の階乗を定義してみましょう。 fact :: Num a => (a -> a) -> a -> a fact = \f n -> if n == 0 then 1 else n * f (n-1) 以下のように動きます。 y fact 4 → 24 でも、この階乗は Haskell っぽくないので、入り口で分岐するように書き直してみます。 fact :: Num a => (a

    Haskell で Y コンビネータ - あどけない話