タグ

haskellに関するjjzakのブックマーク (117)

  • Haskell/カリー=ハワード同型 - Wikibooks

    カリー=ハワード同型(Curry-Howard isomorphism)は数学の一見無関係に思えるふたつの領域、型理論と構造論理を結びつける実に驚くべき関係である。 導入[編集] これよりカリー=ハワード同型は単に C-H と表記する。C-H が示しているのは、定理の質を反映するような型を構築し、それからその型を持つ値を見つけさえすれば、どんな数学的定理をも証明することができる、ということだ。これは最初は極めて不思議に思える。型と定理にどんな関係があるというのだろうか?しかしながら、以下に述べるように、このふたつは非常に近しい関係にあるのである。はじめる前に簡単に注意しておくが、導入の章では error や undefinedのような 表示的意味論 が ⊥ である式の存在は無視する。これらはとても重要な役割を果たすのだが、これらについては後ほど別に考えることにする。また、unsafeCo

  • Write Yourself a Scheme in 48 Hours - Wikibooks, open books for an open world

    The latest reviewed version was checked on 30 October 2021. There are 2 pending changes awaiting review. Write Yourself a Scheme in 48 Hours is a featured book on Wikibooks because it contains substantial content, it is well-formatted, and the Wikibooks community has decided to feature it on the main page or in other places. Please continue to improve it and thanks for the great work so far! You c

    jjzak
    jjzak 2011/02/20
    48時間でSchemeを作っちゃおう
  • 還暦プログラマの挑戦(Haskell に挑む→F#による言語造り)

    Haskell HASKELL Wiki の Write Yourself a Scheme in 48 Hours 1.Overview 2.First Steps: Compiling and running 3.Parsing [言語を作るぞ その1] 48時間でSchemeを作っちゃおうって ・・・sigh かつて、10分でやろうってのを、とてもじゃない、10分じゃできなかった例がある。さてこいつはどのくらいかかるんだろう。 そもそも、Schemeはやったことがない。 無謀といえば無謀なんだけど、「parser」の一言につられ、かじり始める。 さて、どうなることやら 1.Overview ウェブ上のHaskellの記事は、ほとんどが言語マニュアル的なアプローチをしている。 それらは、会話環境で、シンタックス、言語構造や、ちょっとした関数を説明するだけで、関数やプログラ

    jjzak
    jjzak 2011/02/20
    HASKELL Wiki の Write Yourself a Scheme in 48 Hours
  • http://www.ipl.t.u-tokyo.ac.jp/lecture/index-j.html

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

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

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • プログラミングのための確率統計 in Haskell

    こんな表のことを確率分布といいます。サイコロをふったときに起こるイベントの確率、たとえば「偶数の目が出る」確率を調べることは、この確率分布からこんな別の確率分布への変換だと考えられます。 この変換は、具体的にはこんな対応です。P(偶数) = P(2) + P(4) + P(6) P(奇数) = P(1) + P(3) + P(5)P(X)がイベントXに対する確率を表しているわけですが、Pを「イベントの集合から[0,1]区間の実数への関数」だとみなすこともできます。確率分布から確率分布への変換は、関数に対する演算でもあるわけです。確率分布を連想リストで表せば、高階関数や代数型を使って、この変換をモデル化できそうです。 以前、このアイデアをSchemeで試してみたことがありました。当時は、そもそも確率についての理解が今よりもいっそうあやしかったし、実装もちゃちでしたが、このアイデアが特別なもの

  • Clojureのモナド - einblickerの日記

    Clojure | 22:17 | Clojureにはclojure.contrib.monadsというライブラリがあって、これを使うとモナドが使える。練習のためにモナドのすべてのサンプルコードのいくつかをClojureに移植してみた。 Identityモナド例:モナド変換子からモナドを導出する。 (use 'clojure.contrib.monads) (def my-state-m (state-t identity-m)) Maybeモナド例:辞書の検索。 (defrecord MailSystem [fullname-db nickname-db prefs-db]) (defrecord UserInfo [name nick email prefs]) (defn make-mail-system [users] (let [full-lis (map (fn [u] [(:

  • diaspar journal

    No posts. No posts. Home Subscribe to: Posts (Atom)

  • プログラミング/Haskell - Flightless wing

  • Haskell でネットワーク - zyxwvの日記

    Haskell でネットワークしてみよう,ということで.id:syd_syd さんの http://haskell.g.hatena.ne.jp/syd_syd/20061019/p1 とかのあたりも参考にすればいいと思う! 研究室で定期的に投げられるお知らせメールを自動化しようということで,Python,Ruby,Java,Haskell で同じものを書いた.そのときにはまったこととかをメモ.この記事は id:syd_syd さんによるバックアップのもとに書かれました. Haskell でどっかのサーバに接続する そもそもサーバにアクセスするにはどうすればいいのか?以下は Google Calendar の吐く RSS にアクセスするコード. getGCalXML = do urlh <- connectTo gcalServer $ PortNumber 80 hPutStr urlh

    Haskell でネットワーク - zyxwvの日記
  • Haskellの駄目な使い方

    Haskellの駄目な使い方とか追求したりしなかったり とりあえずLHA展開ルーチンできたんで公開することにしました。 当面の目標 Haskellで「KISSローダー」を作るってことにします。 いずれLHA関数もKISSローダに組み込んでやろうかと。

    Haskellの駄目な使い方
  • kazkaz diary

    _ [Haskell] hs-dotnet入れた。 PS C:\Users\haskell\hs-dotnet-0.4.0> runghc Setup.hs configure Configuring hs-dotnet-0.4.0... PS C:\Users\haskell\hs-dotnet-0.4.0> runghc Setup.hs build Preprocessing library hs-dotnet-0.4.0... Building hs-dotnet-0.4.0... C:\ghc\ghc-6.10.2\bin\ar.exe: creating dist\build\libHShs-dotnet-0.4.0.a PS C:\Users\haskell\hs-dotnet-0.4.0> runghc Setup.hs install Installing library

  • Haskell基礎文法最速マスター - think and error

    見ていただけるのは嬉しいですがこのエントリは十分古いため、新しい情報へアクセスをしてください。以下のをお勧めします。 すごいHaskellたのしく学ぼう! 作者: MiranLipovaca出版社/メーカー: オーム社発売日: 2017/07/14メディア: Kindle版購入: 4人 クリック: 9回この商品を含むブログを見る 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行(ソフトカバー)この商品を含むブログ (8件) を見る みんなHaskellやろうぜ!! ということで書きました。 CやJavaRubyなど他言語を知っている人は、これを読むことでHaskellの大抵のことはマスターでき…ません。 特殊な構文が多すぎて他言語との類

    Haskell基礎文法最速マスター - think and error
  • 素数判定 - あどけない話

    要約:素数判定に使われるミラーラビン法を解説しながら、Haskell で実装してみる。 フェルマーテスト 大きな数を確実に素数だと判定するには、大変時間がかかるので、実用的には「ほぼ素数だ」と確率的に判定する。確率的な素数判定の代表格がフェルマーテストである。 フェルマーテストには、以下に示すフェルマーの小定理を利用する。 a^p ≡ a (mod p) a は任意の整数。p は素数である。法 p の下で a を p 乗したものは、a と合同であると言う意味だ。a には制限はないが、特に a を p より小さい整数、0 ≦ a ≦ p - 1 とすれば、a を p 乗して、p で割ると a に戻るとも解釈できる。 最初に見たときは、だからどうしたと思われるかもしれない。しかし、有名なフェルマーの大定理が実用上何の役にも立たないのに対し、フェルマーの小定理はいろんな場面で活躍する。 実際に計

    素数判定 - あどけない話
    jjzak
    jjzak 2010/08/24
    要約:素数判定に使われるミラーラビン法を解説しながら、Haskell で実装してみる。
  • asdf-11

    Ruby2.0に切り替えてから、よくエンコード関係のよくわからんエラーで困ってた。 Redpenを使いたいために、ExcelのデータをpandocでMarkdownに変換をして、 整形をしたいだけなのに、、、 まとめられてる方がいたのでリンクをば。 http://www.ownway.info/Ruby/version http://tmtms.hatenablog.com/entry/20120812/ruby_encoding http://techracho.bpsinc.jp/morimorihoge/2013_10_11/14375

  • 手探りの私にもわかる気がしている関数型言語

    13. オブラブと関数型言語(1) 2006/05/17 : 西川による「ゆるーいHaskell」が メルマガにて連載開始 (2008/09/03に全23回にて終了) 2006/12/20 : オブジェクトクラブクリスマスイベントにて 徳井進による講演にて、 「関数型言語とラムダ計算」が話される 14. オブラブと関数型言語(2) 2007/12/21 : オブジェクト倶楽部クリスマスイベントにて オブジェクトの広場さんによる 「OO厨厨トレイン 未来編」内で、 関数型言語これからくるかもよということ が話される 2008/09/24 : オブジェクト倶楽部メールマガジン252号にて 森田による S式でCocoaプログラムが書ける 「Nu」の紹介記事 2008/10/30 : ファンクショナル倶楽部秋イベント開催

    手探りの私にもわかる気がしている関数型言語
  • さあ、Yコンビネータ(不動点演算子)を使おう! - よくわかりません

    前回、おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりませんというエントリで、Yコンビネータ(不動点演算子)と再帰の絵解き解説をしました。 Yコンビネータ自身は、結局のところ再帰を産み出してくれるだけです。関数(正確にはλという単純な文字列変換ルール)だけで出来て、プログラミングに関するいろんな原理の研究を可能にするのが凄い訳です。その辺のさわりを、きしださんが解説されています。しかし、単なる再帰なら、実際のプログラミングではYコンビネータなんて使わなくても出来ます。 じゃあ、Yコンビネータとか不動点とかは、偉い学者さんとかが研究に使えばいいもので、普通のプログラマには何の意味もないモノなのでしょうか? というわけで、今回はポジティブに、Yコンビネータや不動点で出てくる考え方を、理論だけじゃなく、実際のプログラミングに応用する例を見てみましょう。 今回、プログラムの例を

  • おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりません

    先日YコンビネータのきしださんのYコンビネータのエントリが話題になっていました。 ずいぶん日にちが経ってしまいましたが、自分も、自分なりにYコンビネータのあたりを絵解きで整理してみたいと思います。きしださんのエントリタイトル*1に引っ掛けて、目標として、自分の父親(非プログラマ。その辺のおっさん)でも解る内容を目指します。 なぜ不動点演算子というのか、不動点だったらなぜ再帰なのか、この辺りも含めて、実感を持って納得できればいいなと思います。 きしださんのエントリのおさらい 題の前に、きしださんのエントリをおさらいしておきます。 Yコンビネータはただのオモチャじゃないんだよ 関数だけで色んな事が出来る 条件分岐をする関数ってのもある。 再帰(ループ)を作れる関数もある。←これがYコンビネータ。 数値も関数で表現できる。 つまり、関数だけで、条件分岐も、再帰(ループ)も、数値も作れちゃう!!

    おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりません
  • 類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記

    以前見つけた資料。そういやそんなんあったなと久々に検索して探すのに少し手間取ったのでメモ 言語の比較対応で文法覚えられそうなんで便利じゃないかなと 参照: Big Script: PHP, Perl, Python, Ruby, Smalltalk http://hyperpolyglot.wikidot.com/scripting Small Script: Bash, Tcl, Lua, Javascript, IO http://hyperpolyglot.wikidot.com/small Platform: C, C++, Objective C, Java, C# http://hyperpolyglot.wikidot.com/platform Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp http://hyperpolyglo

    類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記
  • neue cc - Haskell用IDE 「Leksah」の紹介と導入方法

    格的にプログラミングを学び始めたのがC# with Visual Studioな私としては、充実した、とまではいかなくてもそれなりに動くIDEがないとシンドい。新しい言語を学ぶときは、まずIDE探しから始めるのだよ、はっはっは。と、全く自慢にならないゆとりっぷりを晒してしまうわけですが、事実辛いものは辛い。そしてHaskell。日語による書籍も4冊出ていて、学習しやすくなったものの実行環境導入の敷居の高さは変わらず。GHCi(インタプリタ)でコマンド打ち込みながらやれって? いやいや、ムリムリ。 初心者にこそ強力なIDEが必要なのだよー、入力補完や背後でのコンパイルによるエラー報告、色分けにオートインデント、デバッガ。これらが素早いトライアンドエラーを可能にし、学習速度を高める。まずはメモ帳で十分、なんていうのは誤り。学習するなら最初からIDE。ということはneue cc - 最もタメ