[SIMILAR] WITH 453 バス WITH 392 今度 WITH 226 問題 WITH 1 pdc WITH 1 ( WITH 1 7 WITH 1 ) WITH 1 度は WITH 1 は何 WITH 1 何を WITH 1 をや WITH 1 やら WITH 1 らか WITH 1 かし WITH 1 して WITH 1 てく WITH 1 くれ WITH 1 れる WITH 1 るの WITH 1 のか WITH 1 かと WITH 1 と早 WITH 1 早め WITH 1 めの WITH 1 のバ WITH 1 スに WITH 1 に乗 WITH 1 乗っ WITH 1 った WITH 1 たら WITH 1 ら問 WITH 1 題な の検索結果 116 件中 51 - 60 件目 (0.140310953 秒)
Type Familiesを使って型レベルで階乗を実装してみます。基本の考え方としては、dataで定義する型が型レベルの値で、type familyで定義する型属が型レベルの関数になります。 まずは、数の定義から。EmptyDataDecls拡張を使います。 {-# LANGUAGE TypeFamilies, EmptyDataDecls, UndecidableInstances, ScopedT ...
Existential Quantificationは、 data Ex = forall a. Num a => Ex a のような形式で、Polymorphic Componentsは、 data Po = Po (forall a. Num a => a) のような形式です。 Exの方はデータコンストラクタを呼び出す時点で具体的な型が確定するので、 ex = Ex (1 :: Int) のようにできますが、Poの方はNumのイ ...
# (スコア:0)
的確に状況を伝えられませんが、q3u-win-x86-ja-3_0_6にバージョンアップすると、アドレス帳を使った場合に次のような状況になるようです。 q3u-win-x86-ja-3_0_5で、 アドレス帳の「RFC2822形式(P)」にチェックを入れて、 (1) ○○さん <aaa.bbb@ccc.co.jp> (2) □□さん <ddd.eee@fff.co.jp> と登録して使っていた ...
# (スコア:0)
もっとも簡単そうな方法 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] 簡単だけれど、種類を増やす ...
# (スコア:0)
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') のように定義 ...
# (スコア:0)
久しぶりにEmacs Lispを書いたら、基本的なところではまったのでちょっとメモ。 lambdaで匿名関数を作ったときに、 ((lambda (x y) (+ x y)) 1 2) と呼べるのに、 (setq f (lambda (x y) (+ x y))) (f 1 2) で呼べずにはまります。呼び出すには、 (funcall f 1 2) とする必要があります。変数と関数の名前空間に ...
# (スコア:0)
お気づきの方もいると思いますが、snak.orgはXREAでホストしています。バグトラックが不安定だという問題があって色々試しながら調べていたのですが、最近安定しているようなので何をやったのか書いておきます。ただ、これが原因であるかどうかはわからないです。そこでなぜそんな判断をしたかというあたりも含 ...
# (スコア:0)
Invalid TextData Familiesは、型パラメータに依って実装を変えたいときに使えます。C++のテンプレートでの特殊化みたいなものでしょうか。 {-# LANGUAGE TypeFamilies #-} import qualified Data.Sequence as Seq data family Vector a -- BoolのVectorはリストで表現 data instance Vector Bool = BoolVector ...
# (スコア:0)
Invalid TextOutlookのドキュメントを見て最初に思いついたのはこれです。 var app = new ActiveXObject("Outlook.Application"); var ns = app.GetNameSpace("MAPI"); var entries = ns.AddressLists.Item(1).AddressEntries; for (n = 1; n <= entries.Count; ++n) { var entry = entries.Item(n); WScript.S ...
# (スコア:0)
キーと値からなる設定ファイルをパースするとします。設定ファイルはこんな感じです。 name=Test value=5 マップなどで値を持つという方法もありますが、ちゃんと型付けするために専用の型を用意することにします。そうするとパースするコードはこんな感じでしょうか。 import Control.Monad import Data.Maybe ...
# (スコア:0)
# (スコア:0)