トップ 最新

#3 [全文検索]

検索方法

並べ替え: 表示件数: 検索条件の書式:

[SIMILAR] WITH 57728 mayberead WITH 49481 parseline WITH 26885 values WITH 24740 mkname WITH 23246 frommaybe WITH 22766 string WITH 17797 定項 WITH 17724 import WITH 16493 catmaybes WITH 16493 templatehaskell WITH 15725 maybe WITH 14000 nothing WITH 12846 haskell WITH 12128 config WITH 11138 parse WITH 10115 language WITH 9349 just WITH 8612 keys WITH 8246 型付 WITH 8246 expq WITH 8246 varstricttype WITH 8246 stricttype WITH 8203 lookup WITH 7620 deriving WITH 7438 。{- WITH 7213 reads WITH 6553 case WITH 6548 monad WITH 5623 定フ WITH 5415 sequence WITH 5156 tail WITH 4875 template の検索結果 161 件中 1 - 10 件目 (0.077364852 秒)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 次へ

2010-09-15 [類似検索]

[Haskell] 設定ファイルのパースをTemplate Haskell

キーと値からなる設定ファイルをパースするとします。設定ファイルはこんな感じです。 name=Test value=5 マップなどで値を持つという方法もありますが、ちゃんと型付けするために専用の型を用意することにします。そうするとパースするコードはこんな感じでしょうか。 import Control.Monad import Data.Maybe ...

#  (スコア:10000)

2007-12-19 [類似検索]

[Haskell] BitSyntaxを使ってtzfileをパースする

Haskellにはバイナリを読み書きする時に使えるBitSyntaxというライブラリがあります。rubyで言うところのpackとかunpackに近いでしょうか。パースする時には返り値の型が引数に依存するので、その部分のコードはTemplate Haskellになっています。例えば、tzfile形式のファイルをパースするならこんな感じになり ...

#  (スコア:2767)

2010-09-16 [類似検索]

[Haskell] 正規表現リテラル

Haskellで正規表現リテラルは、正規表現のリテラルというよりは、ヒアドキュメントっぽいもの + IsStringクラスを使った文字列からRegexへの変換という趣です。正規表現の作成自体もQuasiQuoteでやるならばこんな感じでしょうか。 {-# LANGUAGE TemplateHaskell, ScopedTypeVariables #-} module RegexQQ where ...

#  (スコア:2562)

2009-09-17 [類似検索]

[Haskell] Maybeをfilterする

Maybeの中の値を元に、Maybe自体をNothingにしたいケースが結構あります。例えば、Maybe Stringで中の文字列が空の場合にはNothingにしたいケースなどです。 nonEmptyString :: Maybe String -> Maybe String nonEmptyString s = case s of Just s | s /= "" -> Just s _ -> Nothing これを少し一般化すると、こ ...

#  (スコア:2534)

2007-12-17 [類似検索]

[Haskell] MIMEヘッダ中のコメントのパース

mime-string-0.3で、MIME形式のメッセージを処理するときに、コメントが入っているとうまく扱えないことがあります。以下のパッチで直ります。 diff -ur mime-string-0.3.orig/Codec/MIME/String/Headers.hs mime-string-0.3/Codec/MIME/String/Headers.hs --- mime-string-0.3.orig/Codec/MIME/String/Headers ...

#  (スコア:2343)

2009-12-03 [類似検索]

[Haskell] インスタンス宣言と拡張機能

たとえばこんなクラスがあるとして、 class ToString a where toString :: a -> String 以下の型にインスタンスを宣言することを考えます。 newtype Wrap a = Wrap a 普通のインスタンス宣言は、たとえばこんな感じ。 instance Show a => ToString (Wrap a) where toString (Wrap x) = "Normal:" ++ show x たと ...

#  (スコア:2254)

2009-11-14 [類似検索]

[Haskell] Impredicative Polymorphism

GHC 6.12でDeprecatedになるらしいImpredicative Polymorphismをどうやって書き換えるのか考えてみました。 例えばこんなの。 {-# LANGUAGE ImpredicativeTypes, Rank2Types #-} f :: Maybe (forall a. [a] -> a) -> (Int, Char) f (Just g) = (g [1, 2, 3], g ['a', 'b']) f Nothing = (99, 'z') のように定義 ...

#  (スコア:2250)

2003-01-27 [類似検索]

addressbook.rnc

試しに書いてみたアドレス帳のスキーマ(in RELAX NG Compact Syntax)です。こんな感じで他の設定ファイルについても書いておくとわからなくならないですね。コメントなんかもつけたら別のところにまとめて置きたい所です。 datatypes xsd="http://www.w3.org/2001/XMLSchema-datatypes" element addressBook ...

#  (スコア:2216)

2006-08-28 [類似検索]

[Haskell] NewCGIとHDBCの組み合わせ

Invalid TextNewCGIはCGIモナドで、DBのアクセスはIOモナドの中で行われるので、もはや関数型というよりは単なる手続き型にしか見えません… import Control.Monad.Trans import Data.Maybe import qualified Database.HDBC as DB import qualified Database.HDBC.ODBC as ODBC import IO import Network.NewCGI ...

#  (スコア:2174)

2006-09-08 [類似検索]

[Haskell] 多相型っぽいリスト

もっとも簡単そうな方法 data Animal1 = Dog1 String | Cat1 String Int call1 :: Animal1 -> String call1 (Dog1 name) = name call1 (Cat1 name whiskers) = name ++ " with " ++ show whiskers ++ " whiskers" test1 = mapM_ (putStrLn . call1) [Dog1 "pochi", Cat1 "tama" 12] 簡単だけれど、種類を増やす ...

#  (スコア:2151)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 次へ