タグ

haskellに関するcho45のブックマーク (8)

  • 続続・ゆの in Haskell - blanket log

    自分でもよく飽きないなーと思いますが、またしてもゆのネタです。 私のアタマではどう頑張っても正式なゆの式を書くことができなかったので、AAに関しては激しく妥協しつつ、別方向で変態的なコードを作ろうとしてみました。その結果が以下です。 import Prelude hiding ((<),(/),(-)) import Data.List (intersperse) import Debug.Trace (trace) data X = X | I | X :/ X | X :< String class P a where p :: a instance P X where p = I instance P Bool where p = False risk = "Hidamari" etc = "Sketch" infixr 3 - infixr 6 / infixr 5 < _ < h

    続続・ゆの in Haskell - blanket log
  • 続・ゆの in Haskell - blanket log

    _ が変数として使えないので、パターンマッチの文脈で無理やり使ってみたら、なんだか微妙な表情になってしまいました。私には X が目で / と | は口元のシワにしか見えません。 import Prelude hiding ((<),(/)) import System.IO.Unsafe import qualifed System.IO.UTF8 as U data X = X utrace = seq . unsafePerformIO . U.putStrLn X < x = utrace ("ひだまりスケッチx365 "++x) True main = return $! X/X where X / _ | X < "来週も見てくださいね!" =3 苦しまぎれに / の代わりに | を使っています。 trace を使って副作用を出してみました。 $! で強制的に評価してます。 ma

    続・ゆの in Haskell - blanket log
  • 便乗 ゆの in Haskell - blanket log

    http://d.hatena.ne.jp/ranha/20080709/1215658800 まぁ少なくとも片方は #define 使う必要ないですよね。 #define _ X import Prelude hiding((<),(/)) data X = X a / b = X a < b = putStrLn $ "Hidamari Sketch 365 " ++ b main = X / _ / X < "Please see next week!" #define 使ったら負けかなとは思うんですが、_ はどうなんでしょう…。パースエラー出ない場所が限られてますしねぇ。 追記 Haskell で日語を使うには: http://ja.doukaku.org/comment/3513/ , http://hackage.haskell.org/cgi-bin/hackage-scr

    便乗 ゆの in Haskell - blanket log
  • ゆの in Haskell - Yet Another Ranha

    http://d.hatena.ne.jp/sumim/20080709/p1 を始めとして色んな方々がやっているので私も。 ちょっと気色の悪い方法を使いました。 #define _ 1 #define X 365 main = X / _ / X < "Please see next week!" where (<) a b = if a == 1.0 then do print ("Hidamari Sketch 365 "++b) else do print ("owata"++b) infix 0 < ghc -cpp yuno.hs ghcで動きます。これはどういう事かと言うと見れば分かりますがghcではプリプロセッサを走らせる事が出来るので、そいつを使ったと。 で走るプリプロセッサはcppなので、まんまdefineマクロが使える訳ですね。 まぁこの辺はghcのソースコード読もう

    ゆの in Haskell - Yet Another Ranha
  • Prelude - a functional library for Ruby | APP Design

    Prelude - a functional library for Ruby Prelude Prelude is a library of Haskell-style operations written in Ruby with the goal of enabling higher-order functions and monads. The general idea is that functional programming provides many benefits, which are not directly available in Ruby out of the box. This library will, hopefully, provide an infrastructure for the use of most Haskell’s functional

  • http://s3.ne.senshu-u.ac.jp/~ne170027/2007/02/mt10.html

  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

    気まぐれと偶然となりゆきで、ここ2,3回はモナドを話題にしました。googleで「モナド」を引いてザッと眺めると、「モナドはむずかしいー」とか「モナドで挫折した」みたいな雰囲気が感じられて、説明芸人の血が少し騒ぎましたね。「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 タイトルはだいぶ煽っちゃった…… けど、ハッタリじゃないつもり…… けど、実際はどうかな? ※印刷のときはサイドバーが消えます。 内容: とりあえず、あたりさわりなくモナドの来歴を紹介する こんな課題を考えてみよう:副作用付き計算 カウントアップする関数達 カウントアップしたい意志を戻り値で伝える それでは、いったい誰がカウントアップをするのだ 関数の引数の型をCountup型にまで拡張する そして、これがモナドだ とりあえず、あたりさわりなくモナドの来歴を紹介する 今からここで説明する「モナド(monad)

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
  • Haskellプログラミングチュートリアル

    Haskellは,次のような特徴をもった関数型言語です: 強力な型システム パラメータ多相のサポート 型クラスによるアドホック多相 非正格で純粋な関数型言語 関数は非正格 遅延評価:無限リストなどのデータ構造の扱いが容易 純粋:参照透明性が保存され,副作用がない モナドを用いたプログラミング 今回は,Haskellプログラムの基要素である関数と型について, 順を追って解説していきたいと思います. まずは,おおまかな字句構造から: コメントの書き方については,C, JavaやMLのそれと変わりません. それぞれの関数定義や宣言は,セミコロン ';' で区切られ,ブレース '{}' でグループ化されます. しかし,Haskellのレイアウトという構文により, セミコロンを省いた記述が可能です. いまのところ,行頭に文字があったらその行から新しい宣言 くらいに思っておけば大丈夫です.

    cho45
    cho45 2006/03/04
    わからん。Haskell むずい
  • 1