約 2,270,694 件
https://w.atwiki.jp/dasm/pages/8.html
Haskell/Cygwin The Glasgow Haskell Compiler 2. Using the CVS repository Stable Releases Index of /ghc/dist/stable/dist GHC Download version 6.4.1
https://w.atwiki.jp/dasm/pages/5.html
↑ Haskell Pugs Pugs - pugscode
https://w.atwiki.jp/dasm/pages/9.html
↑ Haskell Haskell/Metalinks links - Haskell
https://w.atwiki.jp/dasm/pages/7.html
↑ Haskell Haskell/Introduction Introduction to Haskell id succeed http //d.hatena.ne.jp/succeed/20051102 http //d.hatena.ne.jp/succeed/20051107 http //d.hatena.ne.jp/succeed/20051108 http //d.hatena.ne.jp/succeed/20051110 http //d.hatena.ne.jp/succeed/20051111 http //d.hatena.ne.jp/keyword/Hugs http //d.hatena.ne.jp/keyword/GHC http //d.hatena.ne.jp/succeed/20051112 Links http //web.yl.is.s.u-tokyo.ac.jp/~ganat/memo/aboutHaskell.html http //www.yl.is.s.u-tokyo.ac.jp/~ganat/cgi-bin/haskellbbs/bbs.cgi http //www.google.co.jp/search?q=%22t.u-tokyo.ac.jp%22+haskell http //www.ipl.t.u-tokyo.ac.jp/~hu/pub/teach/fp01/ http //www.sampou.org/cgi-bin/haskell.cgi http //www.sampou.org/haskell/report-revised-j/ http //article.gmane.org/gmane.comp.lang.haskell.general/12340 http //www.haskell.org//pipermail/cvs-ghc/2005-May/025078.html http //www.haskell.org/ghc/docs/latest/html/Cabal/index.html http //www.haskell.org/ghc/docs/latest/html/Cabal/builders.html http //haskell.org/hawiki/Hackage http //www.haskell.org/ghc/docs/latest/html/libraries/base/System-Environment.html#v%3AgetEnvironment http //wiki.perlchina.org/main/show/haskell+workshop+2005
https://w.atwiki.jp/wiki6_vladinet/pages/49.html
『ふつうのHaskellプログラミング』サポートページ 本物のプログラマはHaskellを使う Real World Haskell Haskell - Wikibooks, collection of open-content textbooks 「栄光のグラスゴーHaskellコンパイルシステム利用の手引き」について Hoogle
https://w.atwiki.jp/sms20120113/pages/30.html
日時 毎週 水曜日の夜 22 00-23 30 テキスト すごいHaskellたのしく学ぼう http //learnyouahaskell.com/chapters(webで英語版が閲覧可能です) 備考 ゆる~~くやってます。 予習なしでやっていて進むペースはゆっくりです。ハードルはかなり低いと思うのでお気軽にご参加ください。 進捗状況 開始しました。(2013/6/11) RWHはp245の10.4暗黙の状態まで読み進めました。RWHは一旦止めて、しばらくは「すごいHaskellたのしく学ぼう」のファンクターの章から読み進めていきます。(2013/12/19) p227〜「ファンクターからアプリカティブファンクター」を読み進めています。(2014/04/23) p261〜 「newtypeと遅延評価」まで読み終えました。(2014/07/02) 再開することになりました。再開後は教科書の最初からやる予定です。再開後の第1回が決まったら、またお知らせいたします。 (2015/07/31) 第1回 2015/08/05 初回の予定でしたが、Skypeの障害により中止いたしました。 第2回 日時未定 インストール、チュートリアル、教科書を最初から読んでいく。
https://w.atwiki.jp/hirotakaohkubo/pages/33.html
けんろん! ja.wikibooksのHaskell/圏論がかなり日本語でおk状態なので、直してみた。 Wikibooksに反映させたときにチェックが入った点をフィードバックした。 →2/2版 120202.pdf コメント下さい。 コメント 名前 コメント
https://w.atwiki.jp/paphi/pages/18.html
haskell arrow Arrow Monadの進化形みたいなもの(適当) Monad m -- m a *, m * - * Arrow a -- a b c *, a * - * - * ArrowはArrowApplyを満たしてはじめてMonadと等価だそうです. ライブラリ 本当はFRPの括りで紹介すべきなんだろうけど.以下の話は全てこれ前提. http //www.haskell.org/haskellwiki/Netwire http //hackage.haskell.org/package/netwire 2012/12現在4.0.7 netwire Wire型 instance 記法として使いそうなのだけ.ArrowApplyは満たしていない. 以下の省略を用いる.本当はdataに制約つけるのは良くないらしい. (Monoid e, Monad m) = type WireP = Wire e m Categoryっぽく直列につなぐ. instance Category WireP where id WireP a a (.) WireP b c - WireP a b - WireP a c Alternativeで並列に. instance Functor (WireP a) where fmap (b - c) - WireP a b - WireP a c instance Functor (WireP a) = Applicative (WireP a) where pure b - WireP a b ( * ) WireP a (b - c) - WireP a b - WireP a c ( $ ) (b - c) - WireP a b - WireP a c -- ( $ ) = fmap instance Applicative (WireP a) = Alternative (WireP a) where -- Monoid e はここ. empty WireP a b ( | ) WireP a b - WireP a b - WireP a b some, many WireP a b - WireP a [b] timeとかを数字のように扱える. instance Num b = Num (WireP a b) where (+), (-), (*) WireP a b - WireP a b - WireP a b negate, abs, signum WireP a b - WireP a b fromInteger Integer - WireP a b instance (Num (WireP a b), Fractional b) = Fractional (WireP a b) where (/) WireP a b - WireP a b - WireP a b recip WireP a b - WireP a b fromRational Rational - WireP a b instance (Fractional (WireP a b), Floating b) = Floating (WireP a b) where -- pi, exp, sqrt, log, (**), logBase -- sin, tan, cos, asin, atan, acos, sinh, tanh, cosh, asinh, atanh, acosh OverloadedStrings拡張で使う. instance IsString b = IsString (WireP a b) where fromString String - WireP a b 他にRead, Monoid, あとベクトル関係. メモ Arrowの構文 wire WireP Input Output wire = proc input - do output - somewire - input rec loop - delay etc - loop returnA - output recも書いてあるけど使いこなせる気がしない (未検証)変数っぽいのは全て - - の外側に置く.こんなんとかダメ bad = proc input - do var - testwire - () output - argwire $ var - input ... ArrowApplyがあれば- なんかでできるみたいだけどnetwireは不可. 「Monadに内部状態を加えたもの」だけならMonadFixで多分十分.DoRecとか Arrowは「計算」そのものを高度に抽象化したものなので(多分) Arrow 入力 出力 なんて型になる.
https://w.atwiki.jp/nanakoso/pages/13.html
#blognavi モナド入門」への補足とか応答とか で昨日のエントリ をせっかく紹介していただいたんだけど あとで間違いに気づいてしまいました。 追記:このエントリの内容はすでに檜山さんのモナドの定義とかに書かれておりました。こちらのほうが断然正確で網羅的です。orz 昨日、extは liftMだよ、、て言っちゃったけど コレは間違い。 liftM っちゅうのは関数の出入り口をどっちもモナド形で拡張してしまう。 Haskell風の型式でかくと liftM (a - b) - (M a - M b) で檜山さんがいってた ext はよく読むと fun T→Countup(S)という関数から ext(fun) Countup(T)→Countup(S) という関数を作り出す関数(高階関数)であるext つまり ext (a - M b) - (M a - M b) で、結局、直接に接対応する関数がみつかりませんですた。 (知らないだけかも。Haskellの偉い人の突っ込みお待ちしております) 追記2:見つかりました で、無理やり対応付けてみた。 ext = \f - join.(liftM f) ここででてきたjoinて関数ってのは join M ( M a ) - M a つまり檜山さんのCounterの例でいうと 入れ子になったモナド { value { value ほげ, counter 5 } , counter 5 } を { value ほげ, counter 10 } にしてくれる関数。 liftM に (a - M b)な関数 f を適用させると (M a - M(M b) )になっちゃうから joinでつじつまを合わせてる感じ。 #むむ 、joinてCounterMainの代わりに使えそう。 #ひょっとしてjoinてそういう用途なのか 。 理屈だけじゃなくてIOモナドでちょっと実験。 ---- aa.hsで下記をセーブ module Main where import Monad ext Monad m = (a - m b) - (m a - m b) ext = \f - join.(liftM f) -- ( =) と同じものをextで作ってみる。 ( ==) Monad m = m a - (a - m b) - m b m == f = (ext f) $ m -- ( =)の代わりに動くかな? main = getLine == putStrLn Hugsで実行。 Main l aa.hs Main main abc ←キー入力 abc ←出た! 成功! カテゴリ [プログラミング] - trackback- 2006年04月20日 12 16 54 #blognavi
https://w.atwiki.jp/nanakoso/pages/15.html
#blognavi (副題・ラムダの森の青い鳥) 前回のエントリで 檜山さんの「世界一やさしいモナド入門」とフォローの、 「モナドを構成する三つ組のうちの一つ (ext) に直接対応するHaskell関数が見つからない」と書いたトコロ、 はてなブックマークで 「(= )なんじゃない?」 という指摘を受けました。 ご存知のとおり(あるいは字面からのご想像のとおり) 本来この関数の使い道は getLine = putStrLn と書くところで 左右逆に putStrLn = getLine と書けるようにしただけのもので、 今まで「ごくまれに便利かも知れないユーティリティ関数」 程度の認識でした。 しかしこの演算子の型は当然、 ( =) M a - (a - Mb) - M b の第1引数と第2引数を入れ替えた (= ) (a - Mb) - M a - M b なわけで さらに、略された右結合の括弧を書き加えると (= ) (a - M b) - (M a - M b) これは求めるext関数の型です。 外面だけでなく、今度は関数の意味するところを考えてみます。 (= )は本来2項演算子ですがHaskellですからもちろんカリー化されているわけで、 第一引数にfを代入した状態(f= )の意味を考えてみると、 「モナドを受け取ってfを適用してモナドを返す関数(M a - M b)」 まさにfをextで拡張した関数となっています。 あとは実験あるのみ。 bb.hs module Main where import Monad -- ( =) を(= )で作ってみる。 -- m = f = (ext f) $ m のextに(= )を入れればよい。 ( = ) Monad m = m a - (a - m b) - m b m = f = ((= ) f) $ m --↑よくみたら 引数の順序入れ替えてるだけだ! -- ( =) のかわりに使ってみる。 main = getLine = putStrLn Prelude l bb.hs Main main abcd ←キー入力 abcd ←出た 、、、大丈夫みたいです。 檜山さんのエントリのコメント欄やはてなブックマークを よくよくみれば(= )は最初のほうから指摘されていたんですよね orz カテゴリ [プログラミング] - trackback- 2006年04月20日 21 23 34 名前 コメント #blognavi