トップページtech
1001コメント352KB

関数型プログラミング言語Haskell Part15

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/07/09(土) 17:16:54.84
haskell.org
ttp://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/
0577Perlにんじん22011/08/31(水) 12:41:27.09
こんな場所で質問してるようなやつがやるような言語じゃない
お前がやっても何も変わらない
何も

何 も

終わり
0578デフォルトの名無しさん2011/08/31(水) 13:40:39.32
どんな言語も最初からちゃんと使えるやつなんていないし、
たくさん使って恥かいてネイティブに教えてもらって覚えるもんさ
0579デフォルトの名無しさん2011/08/31(水) 22:55:53.13
> こんな場所で質問してるようなやつがやるような言語じゃない

もはやそんな大それたもんでもないな
Perlのようがよっぽど難しい
05804972011/09/01(木) 00:33:52.17
>>546
ラムダ式としては同値なはずのTest2がTest1よりも遅いのは、
グラフ簡約がうまく働いておらず、同じ内容の環境が2度作られているためです

sumX' x = memo sumX $ x の右辺の x は trie のおかげでメモ化されますが、
左辺の x が「自動ではメモ化されません」
(ちなみに、 $ は不要です)

多少長くなりますが、もう少し詳しく説明した方がいいでしょうか


Test3.hsのコストセンタ"sum1""sum2"がプロファイルに反映されていないのは、

f :: Bool -> Integer
f b = if b then sum [1..8000000] else undefined

main = putStrLn $ show ({-# SCC "sum1" #-}f True)

これでコストセンタ sum1 の処理時間・メモリ使用量がゼロを示すのと同じ理由です
f 関数内の sum [1..8000000] の直前に SCC を置いてみてください
ちゃんと計測できます

私は SCC の仕組み自体をまだよく理解していないので、
なぜ f True の直前ではダメなのか、その理由自体は分かりません
(if 以外にも、関数のパターンマッチや case で分岐しても同様ですね)
05814972011/09/01(木) 00:35:57.08
>>580
猫を観ててにやけてたら安価ミスりました

すいません >>576 宛です
0582デフォルトの名無しさん2011/09/02(金) 19:57:29.63
猫でもわかるReadインスタンス書き方講座お願いします

そんな低レベルな事訊くなと言うなら
Haskell初心者質問スレ作って下さい
0583デフォルトの名無しさん2011/09/02(金) 22:21:38.45
回答出る前にキレるなよ
0584デフォルトの名無しさん2011/09/02(金) 22:24:41.49
こういうスレもあるんやで

スレ立てるまでもない質問はここで 113匹目
http://hibari.2ch.net/test/read.cgi/tech/1312926165/

エスパーが質問に答えるスレ
http://hibari.2ch.net/test/read.cgi/tech/1187922645/
0585デフォルトの名無しさん2011/09/02(金) 22:50:20.70
deriving Read
0586デフォルトの名無しさん2011/09/02(金) 23:06:59.02
>>582
書き方さえ分かればいいんですね

import Data.List

data Nasubi = Nasu

instance Read Nasubi where
readsPrec _ s = if isPrefixOf "nasubi" s
then [(Nasu, drop (length "nasubi") s)]
else []

こう書けば read "nasubi" :: Nasubi で Nasubi 型の値が得られます

最低限 readsPrec 関数を定義すればいいです

readsPrec 関数の第1引数は無視して問題ないです
read 関数が適用した文字列が readsPrec 関数の第2引数として得られるので、
この文字列の先頭にインスタンス型の値を表す文字列が含まれているか構文解析します
含まれていれば、要素として (構築したい値, 残りの文字列) というペアを一つ持つリストを返します
含まれていなければ空リストを返します

この簡単な例では、構文解析は単に文字列の同値性を調べてるだけですが、
もっと複雑な例えばツリーを表現した型の場合ですと、
再帰的に構文解析する必要がありますね
正規表現やParsecを使って構文解析した方が楽かもしれません

まぁ、Show を自動導出しているのであれば、
>>585 の言うように Read も自動導出した方が楽です

ちなみに、私は Read 型の使い所がさっぱり分かりません
何か役に立つんでしょうか
0587デフォルトの名無しさん2011/09/03(土) 06:59:55.50
なんかデータ入力する時、パーサわざわざ書く必要がなくて楽じゃん?
0588デフォルトの名無しさん2011/09/03(土) 10:44:57.21
そうそうderiving前提なんだよなぁ
0589デフォルトの名無しさん2011/09/03(土) 11:36:49.92
Readを自動導入しないのなら、結局自分でパーサーを作らなければなりませんし、
Readを自動導入したのなら、read関数で読み取れる文字列が
Showを自動導入した場合にshow関数で得られる文字列に制限されます

後者の場合、読み取り可能な文字列の制限が少しきついです
融通が効かないと言いますか

Persecは比較的簡単で直感的なので、私はPersecでやってしまいます
0590デフォルトの名無しさん2011/09/03(土) 11:48:55.28
Parsecェ…
0591デフォルトの名無しさん2011/09/03(土) 12:02:26.06
ShowみたいなPrettyPrinterも同時定義されるようなParsecが欲しいな・・・
bidirectionalizationっていう分野になるのか?
0592デフォルトの名無しさん2011/09/03(土) 13:56:31.21
そういうのも bidirectional っていうのですか

私はどちらかと言うと、A -> B かつ A <- B みたいなのを
bidirectional っていうのだと思ってました

たとえば、ちょっとした DSL を使って関数(数式)を定義しておけば、
A から B への関数と同時に、逆関数も自動的に作られるみたいな
(当然、必要になるまで遅延される)
05935922011/09/03(土) 13:59:08.15
>>591
すいません、解釈は合ってましたね
bidirectionalization です
0594デフォルトの名無しさん2011/09/03(土) 16:35:39.50
こんなのか
ttp://haskell.g.hatena.ne.jp/mr_konn/20110226/himaprime6
0595デフォルトの名無しさん2011/09/07(水) 06:59:38.17
本物のプログラマはHaskellを使う
第49回 GHCの測定機能やプロファイラで並列プログラムの振る舞いを調べる
http://itpro.nikkeibp.co.jp/article/COLUMN/20110906/368177/
0596デフォルトの名無しさん2011/09/07(水) 12:24:22.40
このスレを見てたみたいな記事だな
0597デフォルトの名無しさん2011/09/07(水) 12:27:39.75
並列プログラムの振る舞いを測定するんだから、全然別だろ

数回前から続いてる一連の流れだし
0598デフォルトの名無しさん2011/09/08(木) 08:00:50.41
function@l2ch経由でこのスレの内容を見ているという事はありそうだけど
その記事に関しては関係なさそうだ
0599デフォルトの名無しさん2011/09/10(土) 18:26:54.82
図書スレから誘導されたので、改めてこちらで質問します

洋書でも和書でも全く構わないんですが、
Haskell でランクとか kind とか forall とかの意味や役割を
丁寧に解説している本って何か無いですか?

あるいは、forall なら forall(とその関連)だけでいいですから、
まとまって丁寧に説明されているサイトなどあれば嬉しいです
0600デフォルトの名無しさん2011/09/10(土) 20:11:12.78
>>599
本なら
http://www.cis.upenn.edu/~bcpierce/tapl/

webなら簡単ですが
http://en.wikibooks.org/wiki/Haskell/Polymorphism
http://en.wikibooks.org/wiki/Haskell/Existentially_quantified_types
あたりですかね。
0601デフォルトの名無しさん2011/09/10(土) 20:35:25.76
>>600
ありがとうございます

本の方は、Rank や kind なんかも関係してくるのでしょうか
0602デフォルトの名無しさん2011/09/10(土) 21:36:06.51
その本の内容をさらうとrankやkindの理論的な背景がわかる
高階の型を扱うためのkindと高階関数の多相性の為のuniversal quantified types
もう一つのforallの使い方existentially quantified typesの事もその後ぐらいに載ってる
kindに関する議論があるのは結構最後の方だけども
TAPLでは特に前提としているわけでもないけどでもできれば術語論理や集合論の初歩もあった方がいいかも、
0603デフォルトの名無しさん2011/09/10(土) 21:39:46.16
>>602
ドンピシャっぽいですね
術語論理や集合論は最近復習したばかりなので、ちょうどいいかもしれません

その本を購読してみます

ありがとうございました
0604デフォルトの名無しさん2011/09/11(日) 05:57:21.10
それぐらい自分で調べられない人が理解できるとは思えんがね、
0605デフォルトの名無しさん2011/09/11(日) 23:10:01.13
プログラミングhaskellの練習問題に挑戦中なんだけど、これがどうしても分かりません

教えてもらって良いでしょうか


以下、引用

5.7 練習問題

2.関数lengthと同じように、ある要素のみからなるリストを生成するライブラリ関数replicate :: Int -> a -> [a]をリスト内包表記を用いて定義せよ。以下に使用例を示す。

> replicate 3 True
[True, True, True]
0606デフォルトの名無しさん2011/09/11(日) 23:31:21.37
無理やり書いてみたが多分違う。

replicate n x = [y | n > 0, y <- x : replicate (n-1) x]
0607デフォルトの名無しさん2011/09/11(日) 23:39:53.34
>>606
それは私も書いて、エラーで弾かれたパターンですね^^;
0608デフォルトの名無しさん2011/09/11(日) 23:50:17.85
5章で息絶えた漏れが貼ってみます

replicate n x = [x| _ <- [1..n]]
0609デフォルトの名無しさん2011/09/11(日) 23:57:36.12
>>608
俺はこう書いたが、そっちの方が正解っぽいな

replicate n a = [x | x <- take n (repeat a)]
0610デフォルトの名無しさん2011/09/12(月) 00:17:40.77
>>608-609
ありがとうございますm(_ _)m
目から鱗です

勉強になりました
0611デフォルトの名無しさん2011/09/12(月) 04:45:59.74
>>607
エラーにはならないよ。
ただ、出題者の意図と違うだろうという気がした。
0612デフォルトの名無しさん2011/09/12(月) 13:17:56.42
プログラミングHaskell仲間がけっこういるんだな。
9章練習問題4と5だけは放置中。
Haskellで使えるGUIって何がポピュラーなの?
0613デフォルトの名無しさん2011/09/12(月) 18:14:27.08
Haskellまで行っちゃった人にとっては、GUIの方がかえって使いにくい
0614デフォルトの名無しさん2011/09/12(月) 18:17:40.00
だからダメなんだという自覚もないのか…
0615デフォルトの名無しさん2011/09/12(月) 18:33:26.88
やっぱgtk2hsとwxHaskellあたりかなぁ
でもどっちも7.2.1にはまだ対応してないんだっけ・・・
0616デフォルトの名無しさん2011/09/12(月) 21:59:05.63
qtHaskellも推しておく
0617デフォルトの名無しさん2011/09/12(月) 22:01:32.46
コンパイルにメモリ8G食い尽くす糞パッケージの話題はそこまでだ
0618デフォルトの名無しさん2011/09/12(月) 22:30:57.68
qtHaskell はポピュラーではないと思う
0619デフォルトの名無しさん2011/09/13(火) 20:44:44.19
複数行に渡る文字列リテラルってどう書くんだった?
0620デフォルトの名無しさん2011/09/13(火) 21:02:30.89
>>619
すまん、自己解決してしまった

言語仕様にちゃんと書かれてるのね

A string may include a “gap”―two backslants enclosing white
characters― which is ignored. This allows one to write long
strings on more than one line by writing a backslant at the
end of one line and at the start of the next.
0621デフォルトの名無しさん2011/09/13(火) 21:03:17.13
string-qqのようなQuasiQuoterを使う
0622デフォルトの名無しさん2011/09/13(火) 23:53:33.43
>>621
ありがと、申し訳ない、そっちの方も今度調べてみる

それはそうと、HXT を試しに使ってみたんだがよく分からない

import Text.XML.HXT.Core

getText :: ArrowXml a => a XmlTree XmlTree
getText = deep isText

procXml = processChildren (getText `when` isElem)

test = do
[r] <- runX (readString [] "適当なXML" >>> procXml >>> writeDocumentToString [])
putStrLn r

これで元のXML内のテキストノードだけを集めたXMLが得られると思ったんだが、
結果は "/" ノード以下に何もノードを持たない空のXMLが出力された

例えば isText を isCmt に変えると、ちゃんとコメントノードをだけ集めてくれる
(その場合、readString に withPreserveComment yes のオプションが必要だが)

isText ってテキストノードかどうかを判定するものなんじゃないの?
0623デフォルトの名無しさん2011/09/14(水) 10:22:11.32
全体から抽出するなら
procXml = multi isTextでいいんじゃねぇの?
0624デフォルトの名無しさん2011/09/14(水) 12:47:47.17
>>623
それでやっても相変わらず得られるのは空の XML だった

でも、いろいろ実験してるうちに偶然変なことを発見した

>>622 に提示した例には、問題には関係ないと思い込み省いてたんだが、
本当は writeDocumentToString のオプションで withIndent yes を指定してた
http://www.haskell.org/haskellwiki/HXT ここの例を真似た)

で、このオプションを省いてみると、俺の方法でも >>622 の方法でも、
どちらでもちゃんとテキストノードだけを集められた

なんで? (バグか?)
0625デフォルトの名無しさん2011/09/14(水) 12:49:31.88
>>623 >>624
失敬

> 俺の方法でも >>622 の方法でも

俺の方法でも >>623 の方法でも(multi isText にしても)
0626デフォルトの名無しさん2011/09/14(水) 16:13:29.43
そもそも俺の試したverではwithIndentなんてなかった
とりあえず最新版にしてもう一度試してみては?
0627デフォルトの名無しさん2011/09/14(水) 18:43:13.19
>>626
最新版なんだが(hxt 9.1.4)
0628デフォルトの名無しさん2011/09/14(水) 18:45:26.66
それはすまなんだ
0629デフォルトの名無しさん2011/09/14(水) 21:18:52.20
立て続けに質問ですまんが、hxt には意味不明なことが多すぎ
hxt の Arrow の <+> って意味的には OR だよね

deep (isText <+> (getName >>> mkText))

こうやると、"/" タグの直下にひとつ、
元xmlのトップのタグの名前を内容に持つテキストノードだけがあるxmlが得られた

予想では、<+> の左辺に isText があるんだから、元xmlの全テキストノードに、
getName >>> mkText で得られる何かが追加されたxmlが得られると思ってた
getName >>> mkText では何も得られないかも知れんが、
それでも isText で得られるテキストノードだけは得られると思ってた

が、予想に反して得られたのはトップのタグ名が書かれたテキストノードひとつだけ

試しに isText <+> hasName "存在しないタグ名" とやると、
ちゃんと isText の分の全テキストノードが得られる
つまり、hasName "存在しないタグ名" の結果が空でも isText の方は生きる

<+> の右辺って、左辺に(または逆に)影響を与えるもんなんだろうか

hxt ライブラリのソースの ListArrow.h や IOStateListArrow.h などを見てみたが、
<+> 演算は基本的に2つのリストを ++ 演算で結合してるだけに見えるんだが・・・

何か使い方がおかしい?
0630Perl忍者2011/09/15(木) 12:15:26.73
数学できないバカがバカを隠すためにやる言語=Haskell

バカ隠し気持ち悪い
0631デフォルトの名無しさん2011/09/15(木) 12:56:29.22
>>630
バカ丸出しあたま悪い
0632デフォルトの名無しさん2011/09/15(木) 13:06:46.91
https://github.com/treeboa
0633Perl忍者2011/09/15(木) 13:09:11.60
こいつら童貞キモクソ
treeboa=俺だと勘違いしてるゴミ
早く死ね
デートもしたことないかわいそうなやつら
かわいそうだな 彼女暦=年齢
気持ち悪いHaskellやってるんだな
一生だ
気持ち悪い
生産性のないゴミ つまらないゴミ言語
お前らがやっても無駄無駄
0634Perl忍者2011/09/15(木) 13:10:17.82
彼女いない暦=年齢

哀れのゴミ死ね
0635Perl忍者2011/09/15(木) 13:16:12.94
2chブラウザ作ってるとかほざいてる高校生は帰れ
車輪の再発明
てめーはクズだ
わかったな死ね

俺以下ゴミ つまらない発想してんじゃねーぞ
俺の発想はおもしろい
ネタを創造する能力がある
0636Perl忍者2011/09/15(木) 13:41:30.48
vps490円ってこれってsmtpとか使えますか
教えてください
追加できますかこれ?servermanです
お願いします
0637デフォルトの名無しさん2011/09/15(木) 17:31:56.68

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0638デフォルトの名無しさん2011/09/15(木) 17:34:55.92
透明ってことは、やつが現れたか。
0639デフォルトの名無しさん2011/09/15(木) 17:37:25.67
>>630
実際、他の言語に比べておもちゃみたいに簡単なんだが。。。
もっと広まっても良さそうなモンなのにな
0640デフォルトの名無しさん2011/09/15(木) 17:44:57.13
>>639みたいのが敷居を高くしている元凶
0641デフォルトの名無しさん2011/09/15(木) 23:32:44.40
wikipediaを見てエラトステネスの篩を実装して見たのだけど、、
http://ja.wikipedia.org/wiki/エラトステネスの篩

うまく行かないです>.<
何がいけないのでしょうか?

step2 (pL, sL) = step3 (pL ++ [head sL], tail sL)
step3 (pL, sL) = step4 (pL, filter (\x -> x `mod` (last pL) /= 0) sL)
step4 (pL, sL) = if (tail sL) < (tail pL)^2
then (pL ++ sL, [])
else step2 (pL, sL)

main = print $ step2 ([], [2..20])
0642デフォルトの名無しさん2011/09/16(金) 00:03:20.62
型シグニチャを書くべき。
(tail pL)^2 って何ぞ?
0643デフォルトの名無しさん2011/09/16(金) 00:13:22.53
関数型言語はLuaみたいな感じで生き残りを模索したほうがいいと思う
0644デフォルトの名無しさん2011/09/16(金) 00:28:29.40
プログラミング言語に対して「生き残りを模索」なんて馬鹿馬鹿しい

宗教や文化遺産でもなければ、誰かの芸術作品でもない
他の言語と何か競争しているわけでもない

使う人がいれば生き残り、誰にも使われなければ消えていく
それだけだ

生き残らせるという考え方自体が間違ってる
0645デフォルトの名無しさん2011/09/16(金) 01:23:34.47
>>644
概ね同意だけど、プログラミング言語はある種の芸術作品だと思うんだがなぁ。。。

言語だけじゃ無しに、プログラムって、道具であると同時に作品だと思うんだが
0646デフォルトの名無しさん2011/09/16(金) 05:49:53.51
>>645
で、あんたは売らんがための芸術作品を買いたいのか?
0647デフォルトの名無しさん2011/09/16(金) 06:32:46.43
>>646
欲しいと思って、金を持ってれば買うだろ。普通
0648デフォルトの名無しさん2011/09/16(金) 07:52:07.17
>>641
手続き的に描くならモナド使うのがわかりやすいyp
関数型っぽいやりかたなら http://en.literateprograms.org/Sieve_of_Eratosthenes_%28Haskell%29
あたりみるのがいいよ

import Data.List
import Control.Monad.RWS
import Control.Monad.Identity

type SearchList = [Int]
type PrimeList = [Int]
type Max = Int

type Sieve = RWST Max PrimeList SearchList Identity

pop = do { x <- gets head ; modify tail ; return x }
square x = x * x
last' [] = Nothing
last' a@(x:xs) = Just $ last a

step :: Sieve ()
step = do {
x <- pop ; tell $ [x] -- step 2
; modify $ filter $ (/= 0) . (`mod`x) -- step 3
; y <- gets $ maybe 0 id . last' ; if square y < x then return () else step -- step 4
}

trd3 = (\ (_,_,x) -> x)
sieve m = trd3 $ runIdentity $ runRWST step m sl
where sl = [2..m] -- step 1
0649 [―{}@{}@{}-] デフォルトの名無しさん2011/09/16(金) 07:52:25.99
>>644
ある言語を気に入って、使い続けたいと思うなら、
コミュニティが生き残らないと困るし、可能なら大規模になって欲しいだろ

Haskellがここ数年で急速に実用的になったのは、
コミュニティが十分大きくなってライブラリが整備された/GHCへのフィードバックが増えたのが大きいと思う
0650デフォルトの名無しさん2011/09/16(金) 08:06:03.13
>>641>>648
プログラミングHaskellのp.160にあるprimes見たら感動するよ
0651デフォルトの名無しさん2011/09/16(金) 08:29:20.60
そんなものよりここ見た時の方が驚いたよ
色々あるんだなぁあという意味でw
http://www.haskell.org/haskellwiki/Prime_numbers#Turner.27s_sieve_-_Trial_division
0652デフォルトの名無しさん2011/09/16(金) 16:25:35.76
>>629
hasName "from" <+> hasName "to"
とやると<from>と<to>の両方が集められたから大体orの意味になってるんじゃね?

とりあえずトップはテキストノードじゃないよね?
で、次にgetNameに行くわけだけど、getNameはタグ名のあるノードつまり全てのノードにマッチするわけだからトップにマッチするわな
んでgetNameでタグ名取得してmkTextで取得したタグ名を内容とするテキストノード生成・・・と
deepだからその時点で探索終了するから>>629の振る舞いで有ってるんじゃないの?
0653デフォルトの名無しさん2011/09/16(金) 23:28:40.55
s1 :: String の中に Shift-JIS でエンコードされたデータがあります。

これを UTF8 に変換したいです。
s2 = f s1

この関数 f を提供してくれるライブラリはないでしょうか。
ファイルや標準入力などからの読み込みではなく、
String や ByteString などの中にあるデータを直接変換するものです。

[環境]
・Windows7
・GHC 7.0.3
0654デフォルトの名無しさん2011/09/17(土) 01:51:13.36
みなさんHaskellでなにやってるの?
スタディがてらマルバツゲームを作ってみたけど正直便利と思えない。
0655デフォルトの名無しさん2011/09/17(土) 07:36:33.16
vbaとかのほうがいいよ
0656デフォルトの名無しさん2011/09/17(土) 07:37:56.17
>>653
iconvパッケージを使って
import qualified Codec.Text.IConv as IConv

toString . IConv.convert "Shift_JIS" "UTF-8" . fromString
でいけると思う
IConv.convertはByteStrinを対象としてるから、String用にする為にはStringからByteStringの変換、
ByteStringからStringへの変換をはさんでやるわけだ
0657デフォルトの名無しさん2011/09/17(土) 09:04:51.64
>>665
iconvはwinGWかcygwinでしか使えないんですよね。
0658デフォルトの名無しさん2011/09/17(土) 09:19:07.06
じゃあicuいるけどuconvとかは?
0659デフォルトの名無しさん2011/09/17(土) 12:21:07.94
今日の忍者は某セミナー行きかな?
帰ったらレポ頼むわw
0660デフォルトの名無しさん2011/09/17(土) 15:33:06.75
>>658
http://site.icu-project.org/download/48
ここから icu4c-4_8_1-src.zip (18.9 MB ZIP file for Windows platforms)
を落として次のように nconv をインストールしようとしました。

cabal install --extra-include-dirs="icuソースのフォルダ\source\common" -v3

すると、unicode/platform.h が無いと言われます。
調べてみると、たしかに platform.h.in はありますが platform.h はありませんでした。

platform.h.in を見てみますと、configure 時に autoconf が platform.h を作る
と書かれています。

cabal の install フラグでインストールする時、configure はすると思うのですが、
この時点で platform.h が作られると思ったのですが、違うのですね。

cabal install に渡すフラグが何か足りないのでしょうか。
それとも、cabal install の前に autoconf を実行しておく必要があるのでしょうか。
0661デフォルトの名無しさん2011/09/17(土) 15:54:54.29
>>660
icu4c-4_8_1-Win32-msvc10.zip (8.8 MB Windows (x86 32-bit) Visual Studio 10)
こちらの方をダウンロードし、インクルードパスを通して cabal install してみましたが、
今度は ptypes.h が無いと言われました。

icu4c-4_8_1-src.zip の方に icu4c-4_8_1-Win32-msvc10.zip の
platform.h だけをコピーして cabal install してみましたが、
すると今度は expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
などの構文エラーらしきエラーメッセージが大量に発生しました。

windows で cygwin も VisualStudio も無い状態で uconv を使うのは難しいですね。
とりあえずまだ諦めずに、もう少し色々探ってみます。
0662デフォルトの名無しさん2011/09/17(土) 22:35:11.60
ラムダ計算がチューリング完全である証明ってどうやるの?
0663デフォルトの名無しさん2011/09/18(日) 07:51:50.97
反復と分岐が可能ならオッケー、だったような。
0664デフォルトの名無しさん2011/09/18(日) 13:55:41.61
チューリングマシンシミュレーターが作れればいいのじゃね?
0665デフォルトの名無しさん2011/09/18(日) 15:55:19.66
おまえら数学好きなんじゃないの?
0666デフォルトの名無しさん2011/09/18(日) 16:00:27.79
含む記号が∈じゃなくてiの上に^が乗った記号を使うのは
数学でどんな分野ですか?
0667デフォルトの名無しさん2011/09/18(日) 17:07:05.59
>>665
釣り好きでもフライは興味ないやつも居る
車好きでもカートには興味ない奴も居る
0668デフォルトの名無しさん2011/09/18(日) 17:52:19.39
アジフライおいしいのに
0669デフォルトの名無しさん2011/09/18(日) 18:00:33.10
要は数学っぽいものが好きなだけっで数学が得意なわけではないと
0670デフォルトの名無しさん2011/09/18(日) 18:40:36.21
数学が好きなんじゃなくて形式化が好きなのだ
0671デフォルトの名無しさん2011/09/18(日) 18:42:23.16
>>665
数学が好きと、数学が得意は必ずしも一致しない

ええ、下手の横好きです
0672デフォルトの名無しさん2011/09/18(日) 18:43:52.10
>>669
というよりは、解析学は好きだけど集合論は好きじゃない、の方が近い

集合論は色んな数学の基礎のひとつになってるが、それにはあまり興味は無く、
その上に作られた解析学の方に興味がある、みたいな

ある言語(算法、計算)がチューリング完全であるかどうかは、
計算機科学の基礎の一つではあるが、ハスケラーの間でも興味がない人がほとんどだろ
0673デフォルトの名無しさん2011/09/18(日) 18:50:00.65
ハスケラーだとピリッとしないからカレー野郎にしようぜ
0674デフォルトの名無しさん2011/09/18(日) 18:53:23.63
おとこの子はハスケラー
おんなの子はハスケルン
0675デフォルトの名無しさん2011/09/18(日) 19:11:26.86
集合論は好きじゃないけどハスケラーw
0676 [―{}@{}@{}-] デフォルトの名無しさん2011/09/18(日) 19:39:50.47
>>672
むしろ逆で、いわゆる数学(解析学とか代数学とか)よりも、
計算機科学やその周辺(論理とか集合論)に興味のあるユーザが多い印象
■ このスレッドは過去ログ倉庫に格納されています