Haskellの駄目な使い方内検索 / 「Parsecを使ってみる。」で検索した結果

検索 :
  • 駄目日記/2006年04月26日/Parsecを使ってみる。
    #blognavi このサイトでは最終的にHaskellでKISSローダーを作るという野望があるわけで。 今回は、コンフィグファイルの読み込みで使うであろう、Parsecに手を付けてみました。 Parsecのサイト Parsecを使えば簡単にLL(n)文法のテキストファイルを簡単に読み込めるようになるらしいです。(理論的なことはよくわかってない) 自分は、上記のサイトのparsec-2.0.zip をダウンロードしてきたあと、Hugsの作業フォルダにTextフォルダ以下を展開しました。こうすればとりあえずは使えるようになります。 (詳しくはHugsやGHCのマニュアルを読んでください) Parsecの特徴 Yacc+LexやJavaCCが「文法ファイルからプログラムソースを自動生成するツール」なのに対し、Parsecは「ただのHaskellのラ...
  • 駄目日記/2006年04月26日
    駄目日記/2006年04月26日/Parsecを使ってみる。 #blognavi
  • 駄目日記/カテゴリ/プログラミング
    (2006年04月26日)  Parsecを使ってみる。 (2006年04月21日)  Haskellの(? (2006年04月20日)  決定版:モナド3点セット(M,ext,unit)に対応するHaskell関数 (2006年04月20日)  モナド3点セット(M,ext,unit)のHaskell対応の訂正 (2006年04月19日)  世界一やさしいモナド解説を読んで
  • 文字列処言語間理比較表
    ここ→配列操作の比較表に触発されて、Rubyの文字列メソッドの対応物をJavaとHaskellで探してみました。 Javaの文字列処理がそれほど高機能じゃないのはある程度想定内だったけど、Haskellもなかなか1対1の対応物がない。 lines,unlinesとか逆にあまったけど。 そもそもHaskellのソレって文字列処理用っていうよりほとんど汎用リスト操作関数なわけで。 Haskellって 「汎用性の高い関数を用意したから自由に組み合わせて使ってね」 って思想だと思うわけで。 カリー化された関数の強力な応用力とあいまってこれはこれで一つの便利さの方向性だとはおもう。 ただこれの欠点は 「もっとエレガントで短い書き方があるんじゃないか?」 って不安がいつまでも付きまとう事。 (しかもタチの悪い事にパズルみたいで楽しすぎる!) 自分の修行が足りなくてイディオムを知らな...
  • 駄目日記/2006年04月20日/決定版:モナド3点セット(M,ext,unit)に対応するHaskell関数
    #blognavi (副題・ラムダの森の青い鳥) 前回のエントリで 檜山さんの「世界一やさしいモナド入門」とフォローの、 「モナドを構成する三つ組のうちの一つ (ext) に直接対応するHaskell関数が見つからない」と書いたトコロ、 はてなブックマークで 「(= )なんじゃない?」 という指摘を受けました。 ご存知のとおり(あるいは字面からのご想像のとおり) 本来この関数の使い道は getLine = putStrLn と書くところで 左右逆に putStrLn = getLine と書けるようにしただけのもので、 今まで「ごくまれに便利かも知れないユーティリティ関数」 程度の認識でした。 しかしこの演算子の型は当然、 ( =) M a - (a - Mb) - M b の第1...
  • 駄目日記/2006年04月20日/モナド3点セット(M,ext,unit)のHaskell対応の訂正
    #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 ...
  • HaskellでLha
    Lha展開関数が動いたんで 喜び勇んで公開することにしました。 コレ→Haskell版Lha展開ライブラリ とりあえず問題点 遅い(律儀に1ビットづつハフマン木を辿ってる) スライド辞書がスライドしてない エラー処理がない。 2番目は64Kとかの配列を使い捨てしてるんだけどListで十分だったかも。でかい辞書あっても使うのはほとんどが最新に近いところだけっぽいし。 3番目は実用上致命的。 アプリに組み込んで変なファイル食わせたら アプリごとerrorで落ちる。 Errorモナド使えばよさげなのはわかるんだけど 可変ビットの切り出しでもうStateモナドつかってるんだよね。 二つ以上モナドを同時に使う方法が全然わからないよ。 このへん使うんだろうけど>モナド変換子 以下つづく。 参考サイト LHA for UNIXと...
  • 駄目日記/2006年05月29日/今回はHaskellともKISSとも関係ないmixiについて。
    #blognavi http //d.hatena.ne.jp/another/20060528/1148822562 を読んでチョット思うところあったので。 mixi(さらにいえばSNS全般について) <強調>複数アカウントを禁止するのであれば</強調> マイミクとコミュニティのクラスタリングをサポートしてほしい。 (ひょっとして他のSNSに似たようなのがあったりして) たとえば、実際おいらのmixiは エロ同人つながりのマイミクがたくさんいるけど そのおかげで数学、プログラミング関係の込みユニティに入るのは 躊躇しちゃうんだよね。 自分も恥ずかしいし実際に嫌がるひともいそうだし。 (エロマンガ家のマイミクの人で実際はじかれたりしている人もいるし。コミュじゃなくて個人にだけど) そんなわけで、 クラスタは個人ごとに自由に作成、設...
  • 駄目日記/2006年04月19日/世界一やさしいモナド解説を読んで
    #blognavi すごい放置してたのに いきなり更新。 http //d.hatena.ne.jp/m-hiyama/20060419/1145432492 ↑ここのおかげで もやもやしたままなんとなくMonad使ってきたけど、 かなり頭が整理できました。 モナド三点セット(M, ext, unit)はHaskellでは M 各モナド型 (IO とか Maybeとか) unit は return ext は liftM (←まちがい。訂正記事) 一番多用する(m = f)は (liftM f) $ m  ext,liftM になんで関数適用($)をくっ付けて使うのかは プログラミング言語としての使い勝手の問題かな? 追記:上記の liftM は間違い。訂正記事 カテゴリ [プログラミング...
  • 駄目日記/2006年04月21日/Haskellの(>>=)の正体
    #blognavi ここ数日のモナドのどたばたで得た 結論めいたものをちょっとまとめておきます。 Haskellの演算子( =)は、実質的には圏論のモナド(M, ext, unit)の ext(拡張)そのものである。 ただし、2項演算子として使いやすいようにextの第一引数と第二引数を入れ替えてある。 つまり ext = (flip ( =)) = (= ) --flip f a b = f b a なわけでした。 当初 m = f = (ext f) $ m と捉えていたせいで「ext になぜ関数適用($)がくっついているんだろう。」と疑問でしたが, ( =) m f = ext f m と書けば、単に引数が逆なだけだったのでした。 以下ちょっと蛇足? f3( f2( f1 ) ) という式があってこれをモナド...
  • 駄目日記/2005年06月05日/いつのまに
    #blognavi うお、こんな時間かかてしまった。 でもなんとなくわかってきたぞ。 カテゴリ [その他] - trackback- 2005年06月05日 04 37 27 コメントもテスト -- 自作自演 (2005-06-05 04 58 31) #blognavi
  • @wiki全体から「Parsecを使ってみる。」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

目安箱バナー