タグ

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

  • 関連タグはありません

タグの絞り込みを解除

programmingとHaskellとhaskellに関するkgbuのブックマーク (32)

  • Memoise

    Memoi[sz]e、Memoi[sz]ation、メモ化の話題 メモ化ってなぁに?関数のメモ化memoise は特殊な ($) かも?Memo モジュール実装を共有する魔法 メモ化ってなぁに? フィボナッチ関数を考えてみよう、定義は fib 0 = 0 fib 1 = 1 fib n = fib (n-1) + fib (n-2) これを使って、fib 7 を計算すると fib 7 -- fib 6 -- fib 5 -- fib 4 -- fib 3 -- fib 2 -- fib 1 -- 1 | | | | | | | | | | | fib 0 -- 0 | | | | | | | | | fib 1 -- 1 | | | | | | | fib 2 -- fib 1 -- 1 | | | | | | | fib 0 -- 0 | | | | | fib 3

  • Haskell Hackathon やりたいね! - yukobaの日記

    前回の Scheme Hackathon の時に、次は "Haskell Hackathon" やりたいね、という話が出ました。はっきり言って、僕は、「Haskell ぽか〜ん」の人です。モナドがわかりません。Scheme は実装することで、少し理解しました。きっと、Haskell も処理系作ったら、理解できるのではないかと期待しています!(おぃ というわけで、Haskell Hackathonは「12時間で Haskell の処理系を実装しよう!」というイベントです。 詳細はこんな感じ。 参加者全員、Haskell の処理系実装! 会場は、関東、関西、名古屋です。Ustream か Skype Video などで会場をつなぎます。関東は、サイボウズ・ラボ、関西は株式会社グッディ、名古屋は来栖川電算です。 時間は、3/1土曜日のAM11時〜PM11時です。 実装言語は、不問。僕の経験から言

    Haskell Hackathon やりたいね! - yukobaの日記
  • ヒビルテ(2007-12-07)

    日々の流転 トラックバックスパムを大量に喰らったので、トラックバックを一時的に無効にしています。 λ. A brainf*ck interpreter in Prolog ふと、現実逃避にPrologでBrainf*ckの簡単なインタプリタを書いてみた。 brainfuck(Src) :- bf(Prog, Src, []), !, seq(Prog, []*[0], _). bf([]) --> []. bf([X|Y]) --> bf1(X), {!}, bf(Y). bf(X) --> [_], bf(X). bf1('>') --> ">". bf1('<') --> "<". bf1('+') --> "+". bf1('-') --> "-". bf1('.') --> ".". bf1(',') --> ",". bf1(w(X)) --> "[", bf(X), "]".

  • Route 477(2007-12-02)

    ■ [event][prog] LiveCoding#5に出演しました 土曜日に大阪で行われたイベントLiveCoding#5に、 LiveCoderとして出演してきました。 事前に、LivePromoter(※主催者のことらしい)であるujihisaさんから できるだけマニアックな方がいいというオーダーを受けていたので、 Ruby + Javascript + Scheme + Zu という無茶な構成にしてみました(笑)。 *1 BiwaSchemeで 「ず」のインタプリタを作るというテーマだったのですが、 予想外に手間取ってしまい、パース結果をRubyCGI経由で取ってくるとこまでしか行きませんでした。 解説のnaoya_tさん、Abeさんごめんなさい(><) 敗因 Ajaxのクロスドメイン制約を忘れていた CGIはサーバに、htmlはローカルに置くつもりだったんですが、どちらかに統

    Route 477(2007-12-02)
    kgbu
    kgbu 2007/12/04
    シンプルでよいかも
  • 第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro

    Haskellというプログラミング言語を知っていますか? 全く聞いたことがないという人が多いかもしれません。そういう名前の言語があるのは知っているけど,どんな言語かは知らないという人もいるかもしれませんね。でも最近では,一部の先進的なソフトウエア開発者の間で,一種のブームと言えるほど熱狂的に受け入れられています。 なぜならば,Haskellは様々な優れた特徴を持っているからです。最初に,他の言語にはあまり見られない際だった特長を一つだけ紹介してみましょう。「遅延評価(lazy evaluation,怠惰評価ともいう)」です。 遅延評価とは,与えられた値を必要になるまで評価(計算)しないということです。この性質により,不必要な計算が行われる無駄をなくすことができます。また,「潜在的に無限の大きさを持つデータ構造」といった通常のプログラミング言語では扱いの難しいものを直接扱えるため,より直接的

    第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro
  • Haskellで速いwcを書いてみよう(1) | krの日記 | スラド

    このコメントで言及されているページを見て、 Haskellのパフォーマンスチューニングというのは実際に難しいのかどうか、自分でも試してみることにしました。 お題は「Haskellで速いwcコマンドを書く」です。上記tanakh氏のページに倣い、ここで書くwcコマンドは、 いつも標準入力からのみ読む。(ファイル名の指定とかは省略) 行数、単語数、文字数を表示する。 文字はCのchar相当。(Unicodeとか複雑なことは考えない) 単語は空白区切りで数える。(punctuation等も(空白でないので)単語内の文字とする) 行数は改行文字の数を数える。(各行の最後は必ず改行で終わると仮定する) という仕様にしておきます。 なお、実行時間の測定は以下の環境で行ないました(dmesgより)。 OS:FreeBSD 6.2-STABLE CPU:Intel(R) Pentium(R) M proc

  • mad日記

    Erlangが末尾再帰最適化をしてるか調べようとした - みずぴー日記 に興味が湧いたので,erlangのアセンブリコードを見てみた.beamのバイトコードにほぼ一対一対応していると考えていいと思う. まず単純な定義の場合 fact(0) -> 1; fact(N) -> N * fact(N-1). 以下のようになる.アセンブリコードの各行はそのままerlangのタプルとなっている.ここで, {x, N}: はx registerという.Nはレジスタ番号. {y, N}: はy registerという.レジスタという名前だが,スタック上に置かれる. {f, N}: は{label, N}に対応している.{f, 0}はプログラム終了コードのラベル. {function, fact, 1, 2}. % 引数1個, {label,2}がエントリーポイントという意味. {label,1}. {f

    mad日記
    kgbu
    kgbu 2007/10/05
    コンパイル時にプログラムを実行してしまおうという話。Template Haskellを使用した例
  • 毎日Haskell - FSWikiLite

    最終更新時間:2008年05月29日 19時15分03秒noriさんの everydayシリーズに影響されて私も「毎日Haskell」をやってみよう。基礎編はYet Another Haskell Tutorialにそってやっていくつもり。2008-05-19 【自由課題】重み順列挙を用いた幅優先探索、深さ優先探索(の思慮の足りないバージョン) (2008-05-29 追記: この回で書いているコードは無駄な動きをしている上、幅、深さとも有限な木にしか対応できていないことに気づいた。次回はこの反省に立ったネタを書くつもり)前回(2008-05-17 皿回し)使った列挙方法を幅優先探索にも使えることに気づいた。比較する値として (深さ, 選択した枝番号で構成される path) のペアを用いる。 bfs :: (a -> [a]) -> a -> [a] bfs f a = map snd $

  • モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド

    モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド Version 1.1.0 このチュートリアルは、モナドの概念とその関数プログラミングにおける応用に ついて、初中級の Haskell プログラマにわかりやすく、利用価値があるような 解説をすることを旨としています。読者は Haskell になれていることを前提と しますが、モナドに関する経験は要求していません。このチュートリアルは、多 くの題材をカバーしています。後半のセクションでは、前半の題材をよく理解し ていることを前提とします。順をおって、モナドプログラミングを例示するため のサンプルコードがたくさん用意されています。一読で、すべての題材を吸収し ようというのはお勧めできません。 このチュートリアルは 3 つの部分で構成されています。最初の部分は、 関数プログラミングにおけるモナドの基

  • らくがきえんじん

    リンク切れ記事の多くは http://d.hatena.ne.jp/keigoi/ に移動しています. たとえば http://d.hatena.ne.jp/syd_syd/20080302#p1 の記事は http://d.hatena.ne.jp/keigoi/20080302#p1 にあります.

  • Advanced Topics in Programming Languages Series: Parametric Polymorphism

    Advanced Topics in Programming Languages Series: Parametric Polymorphi... Advanced Topics in Programming Languages Series: Parametric Polymorphism - 30:38 - Apr 18, 2007 Google engEDU ()  Rate: Google Tech Talks April 18, 2007 ABSTRACT Advanced Topics in Programming Languages Series: Parametric Polymorphism and the Girard-Rey...all » Google Tech Talks April 18, 2007 ABSTRACT Advanced Topics in Pro

  • Djinn, a theorem prover in Haskell, for Haskell. | Lambda the Ultimate

    Lennart Augustsson announced Djinn on the Haskell mailing list recently. He included this demonstration: I've written a small program that takes a (Haskell) type and gives you back a function of that type if one exists. It's kind of fun, so I thought I'd share it. It's probably best explained with a sample session. calvin% djinn Welcome to Djinn version 2005-12-11. Type :h to get help. # Djinn is