タグ

haskellに関するstarsky5のブックマーク (21)

  • モナドのdo記法をPerlのCoroで実装してみた - Pixel Pedals of Tomakomai

    先に言っときますが、決して役に立つエントリではないので圏論やコルーチンみたいなものに興味がある人だけどうぞw PythonにおけるHaskellチックなdo記法をジェネレータで実装する方法に心惹かれたので、Perlで真似してみました。 ジェネレータはコルーチン的な振る舞いをするので、PerlではCoroを使うと楽でしょう。以前のエントリで作ったMaybeモナド*1を利用して、以下のようなシンタックスシュガーを作ってみます。 my $may_div = sub { my ($x, $y) = @_; return $y ? just($x / $y) : nothing; }; my $maybe_divs = do_monad { my $v1 = retrieve $may_div->(3.0, 1.0); my $v2 = retrieve $may_div->(2.0, 1.0);

    モナドのdo記法をPerlのCoroで実装してみた - Pixel Pedals of Tomakomai
  • jQueryはモナドだ - id:anatooのブログ

    この記事はjQuery is a Monad | Important Shockという記事の勝手訳です。 追記1: bonotakeさんが補足記事を書いてくれています → JQueryがモナドかどうかとか - たけをの日記@天竺から帰ってきたよ 追記2: hirataraさんが補足記事を書いてくれています → jQueryは当にモナドだった - 北海道苫小牧市出身のPGが書くブログ Haskellプログラマーは誰しもがモナドに関する各々のチュートリアルを書くと言われる。というのも、一度モナドの定義とその可能性を理解すれば、モナド全体を囲む神秘性に挑戦して打ち破るのが容易になるからだ。門外漢からすれば、モナドはHaskellを真に理解することを妨げる不可解な障壁だ。モナドはとても不適当な名前で呪われていて、一風変わった文法を持ち、一度に何もかもやってしまう様に見える。しかしながら、その動き

    jQueryはモナドだ - id:anatooのブログ
  • エコーサーバー改良版

    takada-atです。 前回HaskellおよびRubyでエコーサーバーを発表したところ、エコーサーバーおよびネットワークプログラミングの基礎について、社内でいろいろな指摘を受けました。 今回は、指摘された点をひとつひとつ改良していきたいと思います。 リンク: Haskellでエコーサーバー ポート番号 実は恥しながらRFCにエコーサーバーの規定があるのを知らなかったのですが、一般に「エコーサーバー」と言った場合、正式には「RFC862 - Echo Protocol」のサーバー実装を指すことが多いようです。 http://www.faqs.org/rfcs/rfc862.html RFC862では、エコープロトコルのポート番号に 7 を割り当てています。 A server listens for TCP connections on TCP port 7. もちろん1024以下の

  • Haskellでエコーサーバー

    Haskellで、TCPのサーバーを書いてみたいと思い、手始めにエコーサーバーを書いてみました。 エコーサーバーというのは、クライアントからの入力をそのまま返すサーバーです。 以下の記事を参考にもっと簡単なものを作ってみます。 A simple TCP server | The Haskell Sequence main = withSocketsDo $ do [p] main部分です。 ソケットを開いてlistenします。 acceptLoop soc = do (hd, host, port) mainのあとの処理です。 クライアントがきたら、accept(受け付け)して、新しいスレッドを生成し、そちらに処理を任せます。 新しいクラアントに対応しつづけるため、処理が終わってはいけませんので、こちらは無限ループを続けます。 echoLoop hd = do sequenc

  • フロントページ - DarcsWiki

    with cabal: cabal install darcs with stack: stack install darcs Darcs binaries for many platforms (not up to date though) current release source tarball Darcs is a free and open source, cross-platform version control system, like git, mercurial or svn but with a very different approach: focus on changes rather than snapshots. Darcs offers a freer way of working, and a simpler user interface. Darcs

    starsky5
    starsky5 2009/03/11
    SCMの一つ。
  • 正規表現を超える - あどけない話

    まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く

    正規表現を超える - あどけない話
  • プログラム工学VI 授業関連資料

    重要:プログラム工学演習VI単位取得について レポート提出状況を更新した.これを見ると分かるが,プログラム高額演習VIの単位取得要件を満たしていない学生が,かなりいる.第3回までのレポート及び口頭試問については,12月20日までに問題点を解消しておかないと単位を取得することはできない. 重要:口頭試問について プログラム工学演習VIでは,第1~3回のレポートについて口頭試問を受けることが必須である.これまでに口頭試問を受けていない学生で,プログラム工学演習VI単位取得の意志がある者については,特別に12月20日に口頭試問を実施するので,必ず出席すること. これを逃すと,口頭試問の機会はない. 来週の演習日が12月21日になっていたのを,12月20日に訂正した. 補講期間中にも演習を行う予定になっていたのを,実施しないことにした. 2002年11月29日 レポート提出状況を更新した. 200

  • Programming in Haskell

    Programming in Haskell ページへようこそ このサイトについて このサイトは、Haskell でプログラミングを楽しむためのサイトです。 現在のところ、WiLiKi というWiKiシステムで運用されています。WiLiKiの使い方は、 WiLiKi:WiLiKi:リファレンスマニュアルを参照してください。 メイリングリスト 「Haskellプログラミングを楽しむための」メーリングリストがあります. MailingListのページをご覧ください. チャット 「Haskellプログラミングを楽しむための」チャット・ルームがいくつか存在します. ChatRoomのページをご覧ください. サイトマップ Introduction Haskell とは Definition 仕様と標準ライブラリ Tutorial チュートリアル やさしいHaskell入門 モナドのすべて なぜ関数プ

  • Haskell - Wikipedia

    Haskell(ハスケル)は非正格な評価を特徴とする純粋関数型プログラミング言語である。名称は数学者であり論理学者であるハスケル・カリーに由来する。 概要[編集] Haskell は高階関数や静的多相型付け、定義可能な演算子、例外処理といった多くの言語で採用されている現代的な機能に加え、パターンマッチングやカリー化、リスト内包表記、ガードといった多くの特徴的な機能を持っている。また、遅延評価や再帰的な関数や代数的データ型もサポートしているほか、独自の概念として圏論のアイデアを利用し参照透過性を壊すことなく副作用のある操作(例えば 代入、入出力、配列など)を実現するモナドを含む。このような機能の組み合わせにより、手続き型プログラミング言語では記述が複雑になるような処理がしばしば簡潔になるばかりではなく、必要に応じて手続き型プログラミングを利用できる。 Haskell は関数型プログラミングの

    Haskell - Wikipedia
  • haskell - GHC on Intel Mac : 404 Blog Not Found

    2006年05月24日14:45 カテゴリLightweight LanguagesTips haskell - GHC on Intel Mac Audrey, you should've told me that! Pugs: SoC, MacIntel, etc. Also, thanks to xerox's effort, Pugs is now running on MacIntel, using Wolfgang Thaller's preliminary GHC 6.5 build. [Japanese Follows; English version will be in my journal at use.perl.org eventually] 以下、そのRecipe. まずはsourceを入手 curl -O http://www.uni-graz.at/imaww

    haskell - GHC on Intel Mac : 404 Blog Not Found
  • pugs now walks on Intel Macs! : 404 Blog Not Found

    2006年05月24日15:50 カテゴリLightweight LanguagesTips pugs now walks on Intel Macs! できますた。 404 Blog Not Found:haskell - GHC on Intel Mac うっほっほ。これでPubsはほんとにbuildできるか、乞うご期待! 以下、Recipe まず、専用のPer5をbuildします。これはparrotのbuildに必要なので。Universal Binaryでは動きません。 cd perl-5.8.8 sh Configure -Dprefix=$HOME/perl6 -Dusethreads -Duseshrplib -des make make install 次にparrot 0.4.4をbuild。ここで↑で作ったPerl5が活躍します。 cd parrot-0.4.4/ ~/

    pugs now walks on Intel Macs! : 404 Blog Not Found
  • Haskellスライド

    NEW: Perl 6 'Diwali' 6.d Language Specification Released! The Perl 6 Programming Language Hi, my name is Camelia. I'm the spokesbug for Perl 6, the plucky little sister of Perl 5. Like her world-famous big sister, Perl 6 intends to carry forward the high ideals of the Perl community. Perl 6 is currently being developed by a team of dedicated and enthusiastic volunteers. You can help too. The only

  • Perl 6 Programming Language

    NEW: Perl 6 'Diwali' 6.d Language Specification Released! The Perl 6 Programming Language Hi, my name is Camelia. I'm the spokesbug for Perl 6, the plucky little sister of Perl 5. Like her world-famous big sister, Perl 6 intends to carry forward the high ideals of the Perl community. Perl 6 is currently being developed by a team of dedicated and enthusiastic volunteers. You can help too. The only

  • Pugs - pugscode

    Pugs - pugscode
    starsky5
    starsky5 2008/10/05
    Haskellで書かれたPerl6処理系
  • GHC

    実に様々なソフトウエアが無料で利用できるようになっています。そこで,主に「ソフトウエアを作る環境を楽しくするお役立ちフリーソフト」を集めて,1日1のペースでご紹介します。 「GHC(Glasgow Haskell Compiler)」は関数型言語「Haskell」の処理系です。1998年に策定された言語仕様「Haskell 98」に基づいた実装になっています。この仕様に基づいた実装には,ほかに「Hugs」(http://www.haskell.org/hugs/)があります。 GHCはコンパイラであり,GHCiという対話実行環境も付属しています。Haskellは「モナド」という概念がわかりにくいなど,学習するときのハードルの高い言語ですが,きちんとマスターすれば,手続き型言語よりも高い生産性が得られることもあります。実際に,台湾の開発者であるAudrey Tang氏は,GHCを使ってPe

    GHC
  • Haskell 98 Syntax

    (上付文字で書かれた)優先順位のインデックスがついた非終端記号のグルー プがいくつかある。同様に非終端記号 op、varop および conop には二つのインデックスがつくことがある。文字 l, r または n はそれぞれ、左結合性優先度、 右結合性優先度、非結合性優先度をあらわしています。優先度変数 i の範囲は、0 から 9 で、結合性変数 a のとりうる範囲は {l, r, n} である。したがって、たとえば、

  • 今日は Haskell Hackathon ! - IT戦記

    経過をここに晒していくよ! ヽ(゚∀゚)ノウンコー! lexer を考える ここを参考に考えるよ! 今回作るやつは Unicode は考えない! オフサイドルールなし! 8 進数なし! 16 進数なし! 指数(0.23e10 みたいなやつ)なし! 文字列内の \ で改行を無効にするやつなし! コメントなし!(ちょw 全部正規表現使うよ! 工エエェェ(´д`)ェェエエ工 気にしない! 正規表現を考えるよ! var regexps = { digit: /\d/, decimal: /\d+/, float: /\d+\.\d+/, integer: /\d+/, char: /'(?:\\(?:[abfnrtv\\"']|\d+)|[^'])'/, string: /"(?:\\(?:[abfnrtv&\\"']|\d+)|[^"])*"/, symbol: /[!#$%&*+\.\/<=>

    今日は Haskell Hackathon ! - IT戦記
  • 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の日記
  • 1053-1060.indd

    IPSJ Magazine Vol.46 No.9 Sep. 2005 1053 (Dynamic Programming) (edit distance) 2 Levenshtein 4) 3 (insertion) ) pascal = 4 (deletion) ! !! v (! v ) (substitution) haskell 2 DNA 1 : 2 : (a) 1 (b) 1 (c) 1 2 ed :: (String, String) -> Int ed ([], []) = 0 ed (xs@(_:_), []) = length xs -- xs@(_:_) xs [] ed ([], ys@(_:_)) = length ys -- ed (xxs@(x:xs), yys@(y:ys)) = let a = ed (xs, ys) b = ed (xxs, ys) c

  • A Gentle Introduction to Haskell, Version 98

    Paul Hudak, Yale University John Peterson, Yale University Joseph Fasel, Los Alamos National Laboratory September 28, 1999 翻訳:山下 伸夫 <nobsun@sampou.org> これは、「やさしい Haskell 入門 (バージョン98)」のHTMLバージョンです。 目次要約 イントロダクション 値、型、その他の有用な概念 関数 case 式とパターン照合 型クラスとオーバローディング 再び、型について 入出力 標準の Haskell クラス モナド 数 モジュール 型付けの落し穴 配列 この先の学習 参考文献 目次 このHaskell Tutorialのマスター文書は、 haskell.orgにあります。このレポー トの訂正や変更はすべてそこに反映されるようになっ