関数型プログラミング言語Haskell Part20
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/10/17(水) 08:08:28.97ttp://www.haskell.org/
日本語サイト
ttp://www.sampou.org/cgi-bin/haskell.cgi
ttp://www.shido.info/hs/
過去ログ
関数型プログラミング言語Haskell
Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html
Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/
Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/
Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/
Part18 ttp://toro.2ch.net/test/read.cgi/tech/1331902463/
Part19 ttp://toro.2ch.net/test/read.cgi/tech/1340760070/
0263デフォルトの名無しさん
2012/11/05(月) 19:24:41.98Haskellでいう関手はこれ
圏論の関手は他を当たってね!
0264デフォルトの名無しさん
2012/11/05(月) 19:29:59.09マジすか
複雑な事情っすね
実践よりもHaskell型システムの理解に的を絞ったサイトないっすか?
0265デフォルトの名無しさん
2012/11/05(月) 19:30:38.26map を関手の一つと考えると、関手から自然変換まで簡単に理解できる
簡単に理解できる = 毎日30分定義とにらめっこして1週間ぐらい悩むと分かる
0266デフォルトの名無しさん
2012/11/05(月) 19:41:26.25Functor クラスが関手のことなら、なにも漢字で書かなくてもよくない?
unboxed vector は Functor クラスのインスタンスじゃないから、
と言う方がはるかに分かりやすいというか、ストレートだと思うんだが
と感じるのは私だけ?
0267デフォルトの名無しさん
2012/11/05(月) 19:44:20.770268デフォルトの名無しさん
2012/11/05(月) 19:52:07.99定着してる訳語があるのに横文字や片仮名を使うのは宗教上の理由でできんのです、ごめんなさい
0269デフォルトの名無しさん
2012/11/05(月) 19:55:12.71ギャグとしてはあまり面白くない
0270デフォルトの名無しさん
2012/11/05(月) 20:02:00.78魔女を焼き払えーっ!
0271デフォルトの名無しさん
2012/11/05(月) 20:04:44.170272デフォルトの名無しさん
2012/11/05(月) 20:14:25.77Functor クラスそのものは関手なの?
Functor クラスがたまたま持つ性質(種数やfmap関数など)を持つものが関手なの?
たとえば Applicative なども関手?
Functor クラス自身とそのインスタンスのみが関手?
Functor クラスそのもののみが関手で、そのインスタンスは集合の要素みたいなもの?
わけが分からなくなった・・・
>>271
一人称「私」なんて誰でも使うから、賢そうに見える要素にならないでしょ
0273デフォルトの名無しさん
2012/11/05(月) 20:20:11.08二番目が一番近いと思う
0274デフォルトの名無しさん
2012/11/05(月) 20:24:02.72そうだとすると、>>268 の言う「定着してる訳語」っておかしくないか?
>>268 の言い方だと Functor の日本語訳が関手である、
と言っているように聞こえる
0275デフォルトの名無しさん
2012/11/05(月) 20:29:18.54圏論でFunctorの訳語が関手だから、それ以外に訳しようがない
0276デフォルトの名無しさん
2012/11/05(月) 20:33:04.720277デフォルトの名無しさん
2012/11/05(月) 20:38:18.43今後Haskellのファンクタの意味で関手といいたい場合
いわゆる関手
と書くことにしよう
0278デフォルトの名無しさん
2012/11/05(月) 20:39:30.80HaskellのFunctorクラスのインスタンスはある種の(圏論的な意味の)関手(の対象部分)になってる
具体的にはHask圏からHask圏への関手
逆に、ある型構築子が(圏論的な意味の)関手になっていてもFunctorのインスタンスとは限らない
たとえば>>258のunboxed vectorがそう
0279デフォルトの名無しさん
2012/11/05(月) 20:48:17.32じゃあ、HaskellのFunctorクラスを安易に関手と言うのは、
文脈によっては危険じゃないか?
どの文脈だと危険か正しく理解してる奴しか使えない訳語な感じがするが
0280デフォルトの名無しさん
2012/11/05(月) 20:53:08.78もちろん混乱の原因になることはあるけど、
*Functorのインスタンスを関手と呼ぶ
のをその論法で禁止したら、
*Monadのインスタンスをモナドと呼ぶ
*Monoidのインスタンスをモノイドと呼ぶ
*Numのインスタンスを数値型と呼ぶ
あたりも言えなくなって不便じゃないか
0281デフォルトの名無しさん
2012/11/05(月) 20:53:32.47という理解は正しいでしょうか?
0282デフォルトの名無しさん
2012/11/05(月) 20:59:21.14「恒等関数と関数結合を保存する高階関数」と言った方が良さそう
0283デフォルトの名無しさん
2012/11/05(月) 21:09:19.730284デフォルトの名無しさん
2012/11/05(月) 21:12:51.87なるほど、そう言われると、たしかに不便だな。
Haskell の話をしていると判りきっている時には
Monad のインスタンスはモナドと言いたい。
(個人的にはFunctorのインスタンスはファンクタと言いたいが)
でも、Haskell の話をしてるときに、いきなり圏論が姿を現し、
そのまま議論が進んでいくと、ややこしくならない?
そういうシーンをこのスレでよく見かける
0285デフォルトの名無しさん
2012/11/05(月) 22:05:15.91一人称を私にすると賢そうに見えるの法則
賢くみられたいからHaskellやるという法則
0286デフォルトの名無しさん
2012/11/05(月) 22:11:23.06賢く見られたいんならMITで博士号取るだろ普通
0287デフォルトの名無しさん
2012/11/05(月) 22:47:19.80ギャグとしてはあまりおもしろくない
0288デフォルトの名無しさん
2012/11/05(月) 22:51:06.92一度目はいいけど、二度やると冷める
もう止めた方がいいと思うよ
0289デフォルトの名無しさん
2012/11/05(月) 23:09:11.87ghci 上で Data.Conduit系モジュールがロード処理されると、
エラーが出る。
Loading package conduit-0.5.2.7 ... linking ... <interactive>: internal error: R
_X86_64_PC32: High bits are set in 7fefb411866 for _close
(GHC version 7.6.1 for x86_64_unknown_mingw32)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
これはバグ?
俺英語書けなくてバグ報告できないんだが、詰んだかな
0290289
2012/11/05(月) 23:10:49.65でも色々実験して勉強しようと思ってたんだが、ghci 使えないとなると、
かなり面倒になるなぁ・・・
0291デフォルトの名無しさん
2012/11/05(月) 23:12:17.93関手とはある圏の対象と射をもう一つの圏(自己関手の場合は同じ圏)に移すものだから、
Functorのインスタンスとfmapセットで関手と言うのが一番近い
0292デフォルトの名無しさん
2012/11/05(月) 23:37:08.23こいつ>>285のレスに図星しすぎれレスしてやがる
だいたいのやつは必死に悔しくても反応したら負けっていう考え持ってるから食いつかない
こいつは食いついた正直者
0293デフォルトの名無しさん
2012/11/05(月) 23:41:21.48たぶんWindows固有の問題
LinuxかMacを使うとか、Windowsなら仮想マシン上でLinux使えば、問題が出ない可能性が高い
この手の開発はUnix系メインでやっててWindowsはオマケのことが多いから、
細かいとこで目の行き届かない不具合があったりする
0294デフォルトの名無しさん
2012/11/05(月) 23:41:35.04正直それはそれで非常に恥ずかしい思いをしている
0295デフォルトの名無しさん
2012/11/05(月) 23:41:49.81○○をしなくなるのが情弱
Matzみたいなのが「これから来る言語」 Haskellとか言ったら
すぐ真似して
Haskellしだすやつが情弱
>>286=こいつ最高に図星
0296デフォルトの名無しさん
2012/11/05(月) 23:44:42.210297289
2012/11/05(月) 23:45:16.42ありがと
とりあえず勉強だけなら処理速度は要らないから、
vm player に linux 入れて、そっちでやってみるよ
0298デフォルトの名無しさん
2012/11/06(火) 00:53:45.21どうせネットで偉い人のマネする以上の教育課程が揃ってないんだから
0299デフォルトの名無しさん
2012/11/06(火) 07:18:02.31まったく向いてないからリアル土方に転向したほうが良いよ?
0300デフォルトの名無しさん
2012/11/06(火) 07:31:54.96元からそのつもりだったのか?
いや、そういう文体には見えないなあ
要するに>>299はアホなんだろう
0301デフォルトの名無しさん
2012/11/06(火) 07:33:11.89大学でも別にプログラミングなんて独学だっただろ?
え?大学行ってないの?
0302デフォルトの名無しさん
2012/11/06(火) 07:34:45.38ってこと
ほんとに大学行ってるの?
0303デフォルトの名無しさん
2012/11/06(火) 07:36:37.37と書いてるようにしか読めんのだが
教育されなきゃ実用的なプログラミングも出来ないアホは向いてないよ
0304デフォルトの名無しさん
2012/11/06(火) 07:41:52.94自分の発言にあとから留保つけちゃってるし
まあ俺は>>298じゃないからいいんだけどさ
0305デフォルトの名無しさん
2012/11/06(火) 07:44:55.65自分で考える脳みそ無いし
0306デフォルトの名無しさん
2012/11/06(火) 07:48:21.060307デフォルトの名無しさん
2012/11/06(火) 09:29:03.76( ´Д`) <みなさーん、お茶が入りましたよ〜
/ \
| l l | ..,. ., .,
| | | _|。.:_::゜。-.;.:゜。:.:;。
ヽ \_ .。'゚/ `。:、`;゜:;.::.。:.:。
/\_ン∩ソ\ ::..゜:: ゚。:.:.::.。.。:.
. / /`ー'ー'\ \ ゜: ::..゜:: ゚。:.:.:,。:.:.
〈 く / / ::..゜:: ゚。:.:.:,.:.:.:。:.:,
. \ L ./ / _::..゜:: ゚。:.:.:,.:.:,.:.:.:,
〉 ) ( .::旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦.
(_,ノ .`ー'旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦.
0308デフォルトの名無しさん
2012/11/06(火) 10:19:19.89実用度外視なんだから、偉いやつが言ったことをすぐ真似してHaskellやるのが正解
どうせネットで偉い人のマネする以上の教育課程が揃ってないんだから
305 名前:デフォルトの名無しさん[sage] 投稿日:2012/11/06(火) 07:44:55.65
アホが偉い人のマネすべきってのはその通りだな
自分で考える脳みそ無いし
0309デフォルトの名無しさん
2012/11/06(火) 10:58:32.920310デフォルトの名無しさん
2012/11/06(火) 14:23:00.820311デフォルトの名無しさん
2012/11/06(火) 17:31:28.63じゃあfmap的なことはどう実現したらいいんですか!?
0312デフォルトの名無しさん
2012/11/06(火) 18:24:59.42Data.Vector.Unboxed.map
0313デフォルトの名無しさん
2012/11/06(火) 19:07:44.24(////)
0314デフォルトの名無しさん
2012/11/06(火) 19:14:05.470315デフォルトの名無しさん
2012/11/06(火) 23:10:36.990316デフォルトの名無しさん
2012/11/08(木) 19:52:02.96遅延評価される場合のたらいまわし関数の呼び出され回数というものが知りたくて以下のように書きました。
import Control.Monad.Writer
tak :: Int -> Int -> Int -> Writer (Sum Int) Int
tak x y z
| x <= y = do
tell(Sum 1)
return z
| otherwise = do
tell(Sum 1)
tak (fst(runWriter(tak (x - 1) y z)))
(fst(runWriter(tak (y - 1) z x)))
(fst(runWriter(tak (z - 1) x y)))
これで動くは動くんですが、引数を色々変えてもカウントが高々3でした。
少し考えてみて、再帰で呼んだ結果のカウントを捨ててるせいだろうというのは分かったのですが
改善策が思いつきません。上手い書き方があったら教えてもらえないでしょうか。
また、もしWriterでカウントするのが無理だとしたらどうするのが定石でしょうか?
0317デフォルトの名無しさん
2012/11/08(木) 20:03:07.81もしかしてHaskellって、Prologよりも抽象度が高いのかも。
実際にプログラムを作るまでになれば、泥臭いこともいろいろあるんだろうけど。
0318デフォルトの名無しさん
2012/11/08(木) 21:19:45.25関数の評価回数を知りたいだけでしたら、プロファイリングすれば簡単にわかりますよ。
コンパイル時に3つのオプション "-rtsopts -prof -auto-all" を付けて、
実行ファイルの起動時にRTSオプション "+RTS -p" を付ければ、
*.prof ファイルができるんで、それを読めばいいです。
prof ファイルの一番下の表を見てください。
1列目に関数名(変数も関数)、2列目にモジュール名とあって、
4列目の "entries" の項目が評価回数です。
例えば z を返すバージョンの tak 関数を使って、
main :: IO
main = do
let z = tak 3 2 1
print z
を上記のようにコンパイルして実行してできた prof ファイルを見ると、
tak の評価回数は 5 と表記されています。
(実際に手計算で let z = tak 3 2 1 を簡約すると、
確かに5回 tak 関数が評価されていることが確認できます)
プロファイリングの詳細は「本物のプログラマはHaskellを使う」
の第45回の記事を参考にしてください。
こういうことではなく、プログラムの中でカウントする仕組みを作るには、
という趣旨の質問でしょうか?
0319デフォルトの名無しさん
2012/11/08(木) 21:33:42.67tak x y z
| x <= y = do
tell(Sum 1)
return z
| otherwise = do
tell(Sum 1)
x' <- tak (x - 1) y z ;変えた
y' <- tak (y - 1) z x ;変えた
z' <- tak (z - 1) x y ;変えた
tak x' y' z' ;変えた
0320デフォルトの名無しさん
2012/11/08(木) 21:46:20.040321デフォルトの名無しさん
2012/11/08(木) 21:46:32.28すみません、書き忘れました。
仰る通りプログラムの中でカウントする仕組みを作るには、という趣旨です。
>>319
それをやると遅延評価の場合と結果変わっちゃいませんかね?
0322319
2012/11/08(木) 21:57:07.69snd(runWriter(tak 100 50 0))とかやると糞時間かかりますね。
あとここちょっと違ってます。
| x <= y = do
tell(Sum 1)
return y; 変えた
0324デフォルトの名無しさん
2012/11/08(木) 22:33:46.28Haskellは純粋だから、評価順序によって違う値を返す関数は書けない。遅延評価を前提とした呼び出し回数を数えるには、明示的に遅延評価をエミュレートする必要がある
import Control.Applicative
import Control.Monad.ST
import Data.STRef
thunk :: ST s a -> ST s (ST s a)
thunk action = do
ref <- newSTRef Nothing
return $ do
cache <- readSTRef ref
case cache of
Just val -> return val
Nothing -> do val <- action; writeSTRef ref (Just val); return val
tak :: STRef s Int -> ST s Int -> ST s Int -> ST s Int -> ST s Int
tak counter ex ey ez = do
modifySTRef counter (+1)
x <- ex; y <- ey
if x <= y
then ey
else do
a <- thunk $ tak counter (pred <$> ex) ey ez
b <- thunk $ tak counter (pred <$> ey) ez ex
c <- thunk $ tak counter (pred <$> ez) ex ey
tak counter a b c
takCount :: Int -> Int -> Int -> Int
takCount x y z = runST (do
counter <- newSTRef 0
_ <- tak counter (return x) (return y) (return z)
readSTRef counter)
0325324
2012/11/08(木) 22:35:38.37実体参照は適当に戻してね!
0326デフォルトの名無しさん
2012/11/08(木) 22:36:17.950327デフォルトの名無しさん
2012/11/08(木) 22:53:32.55ありがとうございます、言い切ってもらえると参考になります。
今すごいH本をやっと読み終わろうかという段階なので正直難しいですが、
そのうち理解できるように精進します。
0328デフォルトの名無しさん
2012/11/08(木) 23:43:06.04インデントは全角空白派が大勝利で悔しい
仕様変更の経緯のわかるスレとかあればどなたかプリーズ
0329デフォルトの名無しさん
2012/11/09(金) 13:58:18.49アイドル時にやってくれる?
0330デフォルトの名無しさん
2012/11/09(金) 18:56:23.67メモリが足りなくなったら
0331デフォルトの名無しさん
2012/11/09(金) 19:22:04.750332デフォルトの名無しさん
2012/11/09(金) 19:22:21.31今入力待ちで暇だなー……
あ、もう要らない領域あんじゃん
スカベンジスカベンジ……
こうはならないの?
0333デフォルトの名無しさん
2012/11/09(金) 19:23:42.68あり^^
0334デフォルトの名無しさん
2012/11/09(金) 21:15:13.21これって需要あるの?
{-# LANGUAGE TransformListComp #-}
import GHC.Exts (groupWith)
xs = [1,3,4,5,7,9,10,11,13]
ys = [x | (x,y) <- zip xs [1..], then group by x-y using groupWith]
0335デフォルトの名無しさん
2012/11/11(日) 15:48:20.65ライブラリドキュメントの Data.Conduit にチュートリアルがありますが、
sourceList [1..10] $$ fold (+) 0 これの結果がどうなるか調べる方法を探しています。
チュートリアルでは、恐らく ghci 上で上記の式を評価して、
55 という数字が標準出力に出力されている様子が描かれていると思いますが、
私は Windows で GHC 7.6.1 を使っているため、ghci で conduit が使えません。
試しに次のようにしてみても、コンパイルエラーが出ます。
a :: GSink Int IO Int
a = sourceList [1..10] $$ fold (+) 0
main :: IO ()
main = print a
--------------------------------
No instance for (Show (Pipe l0 Int o0 u0 IO Int))
arising from a use of `print'
--------------------------------
どうすればチュートリアルのように
sourceList [1..10] $$ fold (+) 0 の評価結果を数値または数字で得る、
あるいは標準出力へ出力することができるでしょうか。
0336355
2012/11/11(日) 16:02:03.19これでできました。
a :: GSink () IO Int
a = sourceList [1..10] $$ fold (+) 0
main :: IO ()
main = do
a <- runPipe a
print a
なんか不親切なチュートリアルですね。
最初の sourceFile の例ではちゃんと runResourceT があるのに。
0338デフォルトの名無しさん
2012/11/11(日) 18:20:04.170339デフォルトの名無しさん
2012/11/11(日) 18:25:43.15それよりWindowsのghc7.6.1ではghci上でconduitが使えないというのが気になる
0340デフォルトの名無しさん
2012/11/11(日) 18:53:17.01>>289 >>290 >>293 辺り
0341デフォルトの名無しさん
2012/11/11(日) 19:02:24.587日に 0.5.4 が公開されていたんですね(その前日にDLしてました)
今 0.5.4.1 にアップデートして、
sourceList [1..10] $$ fold (+) 0 の値を print してみましたが、
コンパイルエラーでした。
大丈夫だったというのは、どのようにやったのでしょうか。
0342デフォルトの名無しさん
2012/11/11(日) 19:07:49.53大域的な型推論
直和型が簡単に表現できる(CのunionやOOPLのsubtypeと比べて)
パターンマッチ(網羅性チェック、分岐と値の取り出しを同時に行える、など)
副作用のある箇所が型により分離される
(LLとかよりは)実行速度が速い
0343デフォルトの名無しさん
2012/11/11(日) 19:10:49.180344341
2012/11/11(日) 19:11:52.88あぁ、分かりました。
(sourceList [1..10] $$ fold (+) 0) >> print
こういう事ですね。
これならできました。
もしかして、これならアップデートしなくてもできていたかも知れません。
ところで、conduit を 0.5.2.7 から 0.5.4.1 へ
"cabal install conduit" でアップデートしたのですが、
ライブラリドキュメントの方はこれでは更新されないのでしょうか。
(デフォルトなら ・・・/AppData/Roaming/cabal/doc/index.html
にインストールされるものです)
ドキュメントの表記の方は 0.5.2.7 のままなんです。
0345341
2012/11/11(日) 19:18:31.91誤 (sourceList [1..10] $$ fold (+) 0) >> print
正 (sourceList [1..10] $$ fold (+) 0) >>= print
ライブラリドキュメントの方はトップの目次のところだけでなく、
内容も、例えば Data.Conduit のページの上部にも
"conduit-0.5.2.7: Streaming data processing library."
と書かれていて、更新されていません。
こういうものなのでしょうか。
Cabal のパッケージのバージョンは、
(規則に従うなら)4つ目の番号の変更は、
互換性は保っているがAPIが変更されている事になるので、
ドキュメントも変更しないとまずいような気がするのですが・・・
0346デフォルトの名無しさん
2012/11/11(日) 20:02:42.53λ> sourceList [1..10] $$ fold (+) 0
って入力しただけだけど 省略 >>= printと同じ事か
ドキュメンテーションが更新されないのは多分haddockのバージョンとghcのバージョンが違うから生成に失敗してるとかが考えられる
0347341
2012/11/11(日) 20:46:24.73> 省略 >>= printと同じ事か
なるほど、たしかに。
> 多分haddockのバージョンとghcのバージョンが違うから
haddock.exe は ghc 7.6.1 に元々入っているのですが、
これが違うという事でしょうか。
ちなみに、ghc の bin ディレクトリには haddock.exe とは別に、
haddock-7.6.1 という名前の謎のファイルもあります。
(バイナリエディタで見てみると、形は実行ファイルの様ですが)
どうも、ghc 7.6.1 は謎の挙動かちらほらとありますね・・・
0348デフォルトの名無しさん
2012/11/11(日) 22:43:59.93cabal install haddockで入れなおしたらconduitのドキュメント作ってくれるようになった
これはcabal/binにhaddockがあるからそっちが優先されるのが原因だけど
0349デフォルトの名無しさん
2012/11/12(月) 02:11:31.23Javaのような言語で書かれた業務アプリ、ドカタの世界にもこれから進出してきたりしますかね
0350デフォルトの名無しさん
2012/11/12(月) 06:17:52.78早くて20年後ぐらいじゃね?
0351デフォルトの名無しさん
2012/11/12(月) 20:15:17.94ハードについてるドライバは何度かある
0352デフォルトの名無しさん
2012/11/12(月) 20:22:24.00俺はひとつだけ知ってる
astah*
Haskell で書かれた商用ソフトってあるんかな
うちは社内ツールではあるけど
0353デフォルトの名無しさん
2012/11/12(月) 20:29:59.560354デフォルトの名無しさん
2012/11/12(月) 20:33:15.190355デフォルトの名無しさん
2012/11/12(月) 20:37:06.130356デフォルトの名無しさん
2012/11/12(月) 20:43:17.14という認識でいいのか?
0357341
2012/11/12(月) 22:44:21.87Haddock を cabal install で入れてから、
cabal install --reinstall Conduit してもダメでした。
(ghc\bin ディレクトリより cabal\bin ディレクトリの方が
優先的に検索されるように設定しましたが・・・)
cabal\bin の Haddock.exe を ghc\bin へコピーしてみましたがダメでした。
よく見たら、cabal\doc 内には conduit-0.5.2.7 と conduit-0.5.4.1 があったので、
conduit-0.5.2.7 の方を適当にリネームして、index.html もリネームし、
この状態で cabal install --reinstall Conduit してみたら、
ドキュメントの目次やコンテンツの Conduit のバージョンが
ちゃんと 0.5.2.7 に更新されました。
Haddock の更新は必要条件だったのかよく分かりませんが、
とりかくドキュメントが正しく更新できて良かったです。
お騒がせしました。
0358デフォルトの名無しさん
2012/11/13(火) 20:32:21.56Minecraft
0359デフォルトの名無しさん
2012/11/14(水) 13:53:30.81type family Mutable v :: * -> * -> *
Mutable v s a is the mutable version of the pure vector type v a with the state token s
って
リワハじゃ習わなかったぞ
0360デフォルトの名無しさん
2012/11/14(水) 15:21:27.75Unbox a => ……としたとして
letやwhereと続けた内部関数にも型宣言をつけるとします
このとき、その宣言でもトップレベルの a と同じ型を指定する為にはどうしますか?
0361デフォルトの名無しさん
2012/11/14(水) 18:30:25.04トップレベル関数 = 関数を生成する関数 内部関数 where 内部関数 = …
0362デフォルトの名無しさん
2012/11/14(水) 19:30:01.00Lexically scoped type variables の事かな
■ このスレッドは過去ログ倉庫に格納されています