トップ 最新

#3 [全文検索]

検索方法

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

[SIMILAR] WITH 49481 intvector WITH 41234 families WITH 32987 synonym WITH 18630 collection WITH 16493 型構 WITH 16493 築子 WITH 12128 instance WITH 11698 empty WITH 6527 where WITH 5572 子ク WITH 5341 型ク WITH 3572 、sy WITH 3564 由度 WITH 2569 haskell WITH 2269 構築 WITH 2079 add WITH 1085 要素 WITH 1083 type WITH 844 制限 WITH 771 ンス WITH 615 タン WITH 592 自由 WITH 581 ラス WITH 577 テナ WITH 574 クラ WITH 484 を使 WITH 472 使わ WITH 387 上の WITH 381 スタ WITH 375 使え WITH 327 スに WITH 319 ンテ の検索結果 147 件中 1 - 10 件目 (0.075564867 秒)

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

2009-09-08 [類似検索]

[Haskell] Type Families (4)

しかし、上のような例だと、Collection型クラスではなくて型構築子ラスにすれば、Synonym Familiesを使わなくても書けます。 class Collection c where empty :: c a add :: a -> c a -> c a instance Collection [] where empty = [] add = (:) instance Collection Seq where empty = Seq.empty add = (< ...

#  (スコア:10000)

2009-09-07 [類似検索]

[Haskell] Type Families (2)

上の例だと、GADTを使っても同じような事ができます。 {-# LANGUAGE GADTs #-} import qualified Data.Sequence as Seq data Vector a where BoolVector :: [Bool] -> Vector Bool IntVector :: Seq Int -> Vector Int add :: a -> Vector a -> Vector a add v (BoolVector l) = BoolVector $ v:l add v (IntVe ...

#  (スコア:8278)

2009-09-07 [類似検索]

[Haskell] Type Families

Invalid TextData Familiesは、型パラメータに依って実装を変えたいときに使えます。C++のテンプレートでの特殊化みたいなものでしょうか。 {-# LANGUAGE TypeFamilies #-} import qualified Data.Sequence as Seq data family Vector a -- BoolのVectorはリストで表現 data instance Vector Bool = BoolVector ...

#  (スコア:7284)

2009-09-08 [類似検索]

[Haskell] Type Families (5)

Synonym Familiesの別の良くある例はこんな感じのもの。 class Mul a b where type Result a b (*) :: a -> b -> Result a b instance Mul Int Int where type Result Int Int = Int (*) = (Prelude.*) instance Mul Int Double where type Result Int Double = Double (*) x y = fromIntegral Prelude.* y これ ...

#  (スコア:6283)

2009-09-08 [類似検索]

[Haskell] Type Families (3)

Invalid Text次はSynonym Families。引数の型によって関連づけられた型を変えたいときに使います。C++でいうところの、特殊化されたテンプレートの中のtypedefとでも言えるでしょうか。 ありがちな例としては、コレクションクラスがあります。 class Collection a where type Elem a empty :: a add :: Elem a ...

#  (スコア:6044)

2009-09-09 [類似検索]

[Haskell] Type Familiesを使って型レベルで階乗を実装してみる

Type Familiesを使って型レベルで階乗を実装してみます。基本の考え方としては、dataで定義する型が型レベルの値で、type familyで定義する型属が型レベルの関数になります。 まずは、数の定義から。EmptyDataDecls拡張を使います。 {-# LANGUAGE TypeFamilies, EmptyDataDecls, UndecidableInstances, ScopedT ...

#  (スコア:3530)

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] 簡単だけれど、種類を増やす ...

#  (スコア:1574)

2003-06-25 [類似検索]

[Q3] MAPIでふりがな (2)

IMAPITable::SetColumnsを呼んで取得するカラムを指定するのですが、ここにPR_ENTRYIDを含めておかないとSetColumnsが失敗します。PR_DISPLAY_NAMEとPR_EMAIL_ADDRESSだけ指定したらエラーになってしまいました。 ここにふりがなのカラムを含めれば良いのだとおもうのですが、ふりがな用のタグが定義されていな ...

#  (スコア:1480)

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 たと ...

#  (スコア:1441)

2006-09-12 [類似検索]

[Haskell] Deriving clause for classes Typeable and Data

Typeableのインスンスにするために、 data X = X instance Typeable X where typeOf _ = mkTyConApp (mkTyCon "X") [] のようなことをやっていたのですが、 data X = X deriving Typeable とできるのですね…(-fglasgow-extsが必要です)。 ...

#  (スコア:1439)

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