関数型プログラミング言語Haskell Part7
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/03/18(日) 18:56:37http://www.haskell.org/
日本語サイト
http://www.sampou.org/cgi-bin/haskell.cgi
http://www.shido.info/hs/
過去ログ
関数型プログラミング言語Haskell
Part1 http://pc.2ch.net/tech/kako/996/996131288.html
Part2 http://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 http://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 http://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 http://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 http://pc11.2ch.net/test/read.cgi/tech/1162902266/
・2chの仕様により、行頭の半角スペースは表示されません。
コードをインデントしたいときは、代わりに または全角スペースを使うことができます。
0153デフォルトの名無しさん
2007/04/01(日) 23:44:240154デフォルトの名無しさん
2007/04/01(日) 23:46:30それともコミュニケーションに飢えた基地外か
0155デフォルトの名無しさん
2007/04/01(日) 23:46:470156デフォルトの名無しさん
2007/04/01(日) 23:48:24っつか他人のセリフ、パクリまくりの
自作自演しまくりじゃんこの厨房
やっぱ >>51 未満だな
0157デフォルトの名無しさん
2007/04/01(日) 23:51:44http://www.cs.nott.ac.uk/~jjg/papers/qml-comp.pdf
0158デフォルトの名無しさん
2007/04/01(日) 23:52:25Lisper の煽りならこっちでやった方がいいと思うよw
Lisp Scheme Part16
http://pc11.2ch.net/test/read.cgi/tech/1172404795/
0159デフォルトの名無しさん
2007/04/01(日) 23:52:57(キチ外)パワーは衰えてるけどww
>>152見たけど、
昔からのアイデアをHaskellに移植してみました系の論文ばっかに見えるんだけど、
どれがまともな研究なの?
0160デフォルトの名無しさん
2007/04/01(日) 23:56:55quantum programming
language QML [AG04, AG05], developed in Haskell
って書いてあるぞ
0161デフォルトの名無しさん
2007/04/01(日) 23:58:29相手の徹底的に打ち負かしてすっとしたいのは判るけど自分にとって何のプラスにもならないし
0162デフォルトの名無しさん
2007/04/01(日) 23:58:32それは何かのギャグかい?
それはHaskellを実用してる例なんだが。
やっぱ、>>150の洞察は正解のようだなw
0163デフォルトの名無しさん
2007/04/02(月) 00:00:06具体的にどの論文だ?
名前くらいかけよ。
0164デフォルトの名無しさん
2007/04/02(月) 00:01:10まともな人はもう放置だろうしオレも引いた方がいいかな
休みはほんとうに困るねw
0165デフォルトの名無しさん
2007/04/02(月) 00:04:45http://homepage3.nifty.com/Aransk/
だったようだなw
0166デフォルトの名無しさん
2007/04/02(月) 00:05:560167デフォルトの名無しさん
2007/04/02(月) 00:08:130168デフォルトの名無しさん
2007/04/02(月) 00:17:30変な人が、Haskellは研究用言語だ、実用厨は邪魔とのたまう
↓
煽られて探して来たのは、Haskellを実用にしている内容の英語論文
↓
結論:Haskellは研究用言語ではない。そんなこと言う奴は、やはり馬鹿。実用OK。
0169デフォルトの名無しさん
2007/04/02(月) 00:19:33http://www.cs.nott.ac.uk/~jjg/papers/qml-comp.pdf
はsyntaxとかmachine codeについて書いてあるし、
これは処理系実装に関する論文としか思えないのだが。
しかも、出てくる擬似言語もHaskellそっくりだし…
何処をみてモデルや理論構築だと思ったんだろ?
このAranskは?
0170デフォルトの名無しさん
2007/04/02(月) 00:21:27- - - - - - - - - - き り と り せ ん - - - - - - - - - -
0171デフォルトの名無しさん
2007/04/02(月) 00:28:570172デフォルトの名無しさん
2007/04/02(月) 00:31:19さあ今年度も頑張ろう
0173デフォルトの名無しさん
2007/04/02(月) 00:39:01categorical semanticsっていうのは圏論的意味論って事なのかな?
0174デフォルトの名無しさん
2007/04/02(月) 00:41:25さぁ散った散った
>>173お前はさっさと壷に糞を詰める作業に戻れ
0175デフォルトの名無しさん
2007/04/02(月) 00:50:272年前関数型言語のスレさんざん荒らした基地外のくせに…
http://www.google.co.jp/search?q=aransk&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
http://d.hatena.ne.jp/Aransk/
0176デフォルトの名無しさん
2007/04/02(月) 00:54:11アドバイス:あなたはとても疲労しています。
今晩は暖かい風呂に入り、ゆったりとした気分で睡眠をとってはいかがでしょう?
0177デフォルトの名無しさん
2007/04/02(月) 00:56:25そろそろ落ち着かない?w
0178デフォルトの名無しさん
2007/04/02(月) 01:09:16折角だから>>157 >>160についても議論したまえ。
0179デフォルトの名無しさん
2007/04/02(月) 01:29:450180デフォルトの名無しさん
2007/04/02(月) 02:07:450181デフォルトの名無しさん
2007/04/02(月) 02:10:45釣り師のおかげでスレが大繁盛です^−^
0182デフォルトの名無しさん
2007/04/02(月) 02:11:08018355
2007/04/02(月) 12:48:42runXを1回済むようにできないか考えてるところ。
(実行にはHTTP, HXT, hslogger, FilePath, MissingHあたりが必要。)
import Data.List (sortBy)
import System.Locale (defaultTimeLocale)
import System.Time (CalendarTime)
import System.Time.ParseDate (parseCalendarTime)
import Text.XML.HXT.Arrow
data RssItem = RssItem { title :: String,
link :: String,
description :: String,
pubDate :: CalendarTime }
deriving (Show)
instance Eq RssItem where
a == b = (pubDate a) == (pubDate b)
instance Ord RssItem where
compare a b = compare (pubDate a) (pubDate b)
main :: IO ()
main = getRssItems "http://www.microsoft.com/japan/msdn/rss.xml"
>>=
writeHtml "result.html" . take 10 . sortBy (\a b -> compare b a)
018455
2007/04/02(月) 12:49:51getRssItems :: String -> IO [RssItem]
getRssItems url = runX $ readDocument [(a_validate, v_0)] url
>>>
getXPathTrees "/rss/channel/item"
>>>
( getElemText "title"
&&&
getElemText "link"
&&&
getElemText "description"
&&&
getElemText "pubDate"
)
>>^
\(t, (l, (d, p))) -> RssItem t l d (parseDate p)
where
getElemText n = getChildren >>> isElem >>> hasName n >>>
getChildren >>> isText >>> getText
parseDate :: String -> CalendarTime
parseDate = maybe dummyTime id . parseCalendarTime defaultTimeLocale "%a, %d %b %Y %H:%M:%S %Z"
dummyTime :: CalendarTime
dummyTime = let Just d = parseCalendarTime defaultTimeLocale "%Y/%m/%d" "1900/01/01" in d
writeHtml :: FilePath -> [RssItem] -> IO ()
writeHtml path items = do runX $ makeHtml items
>>>
writeDocument [(a_output_html, v_1), (a_output_encoding, utf8)] path
return ()
018555
2007/04/02(月) 12:50:36makeHtml :: (ArrowXml a) => [RssItem] -> a n XmlTree
makeHtml items = root [] [
selem "html" [selem "body" $ arr (map makeLink) items]
]
makeLink :: (ArrowXml a) => RssItem -> a n XmlTree
makeLink item = selem "div" [
mkelem "a" [sattr "href" (link item), sattr "target" "_blank"] [txt (title item)]
]
以上、連投スマソ。
0186デフォルトの名無しさん
2007/04/02(月) 13:16:460187デフォルトの名無しさん
2007/04/02(月) 13:36:58現状で何か不満があるのか?
0188デフォルトの名無しさん
2007/04/02(月) 13:39:42精神性疾患患者の蔑称を叫んでしまった
自己愛性人格障害の方でしょう。
018955
2007/04/02(月) 13:52:13読みと書きでArrowを別々にしてるところ。('A`)
あとは元ネタはこのへんなんだけど、
http://pc11.2ch.net/test/read.cgi/tech/1174574352/15-18n
これぐらい簡潔に書けないものかなあ、と。
0190デフォルトの名無しさん
2007/04/02(月) 14:06:20スルーしておいた方がよさそうだな
またスレが荒れたらかなわない
0191デフォルトの名無しさん
2007/04/02(月) 14:28:23なんで別々にするのが嫌なのか分からんが、HXTのドキュメントを見た感じでは
listA :: (ArrowList a) => a b c -> a b [c]
を使えばよさそう。
0192デフォルトの名無しさん
2007/04/02(月) 14:43:27プログラマが学習コスト0で習得できたとしたら
みんなこぞってHaskellを使い始めちゃうわけ?
それくらいの実力はあると?
0193デフォルトの名無しさん
2007/04/02(月) 14:51:22おまえが消えろよ。
0194デフォルトの名無しさん
2007/04/02(月) 14:59:20特徴:妄想
0195デフォルトの名無しさん
2007/04/02(月) 15:06:00昨日は、NGワード連発するし、いったいこの人なんなんだ?
0197デフォルトの名無しさん
2007/04/02(月) 15:14:070199デフォルトの名無しさん
2007/04/02(月) 19:22:28020046
2007/04/02(月) 22:04:08Smalltalk事件を持ち出した私(>>46)とフォローを入れた>>47は別人です。
私は44歳の人には全く心当たりがありません。
私がこのスレで書いたレスは>>46、>>65、>>103だけです。
私は「【GoF】デザインパターン 6」と「デザパタ+python」にはレスしていません。
Smalltalk事件の引用で別スレの揉め事を召喚してしまった事はお詫びします。
>>193
http://pc11.2ch.net/test/read.cgi/tech/1172431242/542
どちら側も複数いるのにお互いに相手は一人だと思い込んでいる様に見えます。
>>192
関数型言語の学習コストという大きな障壁がないのであれば、
短い時間で不具合が少ないコードを書ける
Haskellに飛びつく人は増えると考えられます。
0201デフォルトの名無しさん
2007/04/02(月) 22:37:53が生成されるようになったら、みんな飛びつくと思う。
0202デフォルトの名無しさん
2007/04/02(月) 22:49:450203デフォルトの名無しさん
2007/04/02(月) 22:57:190204デフォルトの名無しさん
2007/04/03(火) 06:48:44instance Eq RssItemの実装がちょっとまずいんじゃない?
日時さえ一致すれば違うサイトの情報も全部同じ扱いになっちゃうよ。
0205デフォルトの名無しさん
2007/04/03(火) 08:28:02しばらく読んでなかったから気付かなかった。
http://darcs.haskell.org/SoC/haskellnet/Text/RSS.hs
が参考になるかもね。
020655
2007/04/03(火) 10:29:34並べ替えのことばかり考えてて、すっかり本来の用途を忘れてた。
linkで比較に変更します。
>>205
本格的すぎ・・・。('A`)
とりあえず解読に挑戦してみます。
お二方、レスサンクス。
020755
2007/04/03(火) 10:32:16linkとpubDateの方がいいか・・・。
0208デフォルトの名無しさん
2007/04/04(水) 07:23:55http://pc11.2ch.net/test/read.cgi/tech/1172431242/
0209デフォルトの名無しさん
2007/04/06(金) 18:26:300210デフォルトの名無しさん
2007/04/06(金) 18:48:45data F = forall a. (Show a) => F a
みたいにする。
0211デフォルトの名無しさん
2007/04/06(金) 22:30:47data (Show a) => F a = F a
みたいに型パラメータとして渡す。
この場合、 F Int と F Char は違う型になってしまうとかいうことがあり、
混同させたいときには問題だが(なので非標準な forall が導入されたのだが)、
たいていは問題ない。はず。
もちろん、宣言の方で
data F a = F a
のように書いておき、 F を使う関数の方で a に対するコンテキストを与える
という手もある。
0212デフォルトの名無しさん
2007/04/07(土) 12:59:59ありがとうございます。
>>211の方法でいけました。
外部から型を指定する必要はないのでちょっとすっきりしない気がするけど、そんなもんでしょうか。
210はNot a constructor: 'forall'と言われてしまいました。
ググったら、forallは「途轍もなく難しい」とあったのでそこであきらめてしまいました。すみません。
0213デフォルトの名無しさん
2007/04/07(土) 18:00:15インデントの方法に関して質問があります。
例えば、次の様なソースがあった時、
import System
import System.IO
main = do
putStrLn $ "Woud you like some coffee?(y/n)."
hFlush stdout
c <- getChar
if c == 'y'
then putStrLn "Yes,please."
else putStrLn "No,thank you."
thenやelseの前でTabキーを押すと、if式と同じインデントになってしまうのですが、
それだとコンパイルエラーになってしまいます。なので、今はスペースでインデントを
付けています。Tabキーで正しくインデントさせる方法がありますでしょうか?
0214デフォルトの名無しさん
2007/04/07(土) 18:08:590215デフォルトの名無しさん
2007/04/07(土) 19:31:19そんなもんです。
forall 使うなら、 -fglasgow-exts つきでコンパイルしないとだめ(Hugsなら-98だっけ)
>213
明示的に {} を使うという方法はあるにはあるが。
do { putStrLn $ "Woud you like some coffee?(y/n)."
; hFlush stdout
; c <- getChar
; if c == 'y'
then putStrLn "Yes,please."
else putStrLn "No,thank you."
}
のようにすると綺麗にインデントできる。
まぁ私は手で空白を入れたり一行にしちゃったりする方が多いけれど。
0216デフォルトの名無しさん
2007/04/08(日) 17:57:02レスありがとうございます。
{}を使う方法か、手動でインデントをあわせる方法の2通りという事ですね。
他の方はどうやってインデントさせているのか疑問に思っていたのですが、
その疑問が解消されました。
0217デフォルトの名無しさん
2007/04/08(日) 18:22:46いや、俺はemacs使ってないからよくわからんが。
0218デフォルトの名無しさん
2007/04/08(日) 19:29:17あん? 金儲けのためよ。
俺様がPyhonの本を書けば、Py厨が喜んで買うかなと思ったんだ。
が、市場調査の結果、お前らは金持ってなさそうだと判明したんで
撤退しというわけ。
世の中、ゼニだ。金持ちを相手にしないとな。
今度は関数型言語で名前を売ろうかななんて思るよ。
お舞には、無理だろうが
0219デフォルトの名無しさん
2007/04/08(日) 20:09:190220デフォルトの名無しさん
2007/04/09(月) 00:26:480221デフォルトの名無しさん
2007/04/09(月) 01:11:190222220-221の母
2007/04/09(月) 01:17:46誠に申し訳ございません、>>220-221の母でございます。
今夜、私がちょっと目を話した隙に、頭の弱い子が
この掲示板に何か書き込んでしまったようです。
取り急ぎ薬を飲ませて眠らせましたので、
もう悪戯をする事はないかと存じます。
本当にご迷惑をお掛けして申し訳ありませんでした。
0223デフォルトの名無しさん
2007/04/09(月) 07:30:06http://www.joachim-breitner.de/various/bfi.hs
0224223の祖母
2007/04/09(月) 07:32:48>>223の祖母でございます。
この朝、私共がちょっと目を話した隙に、
また頭の弱い子が この掲示板に何か書き込んでいたようです。
さきほど拘束衣を付けて施設に送り出しましたので
もう悪戯をする事はないかと存じます。
本当にたびたびご迷惑をお掛けして申し訳ありませんですた。
0225デフォルトの名無しさん
2007/04/09(月) 07:33:37ブレインファックの他の言語での実装も持ってきて。
0226デフォルトの名無しさん
2007/04/09(月) 07:34:37就職活動お疲れ様
0227デフォルトの名無しさん
2007/04/09(月) 07:37:16暇人だな似非コンサル人種は
0228デフォルトの名無しさん
2007/04/09(月) 08:31:46もともとbfはコンパイラが短い(機械語で200バイト前後)のが特徴らしい。
http://pc11.2ch.net/test/read.cgi/tech/1036013915/632/
D言語によるインタプリタ。
http://www.ping.de/~flori/flott/exe/session/source/projects/ruby/brainfuck/brainfuck.rb?tokens=Ruby&back_url=/~flori/flott/exe//session/project/ruby/brainfuck
Rubyによるインタプリタ。
http://d.hatena.ne.jp/tanakh/20040725#p1
Haskellによる比較的短いインタプリタ。
0229デフォルトの名無しさん
2007/04/09(月) 08:34:500230デフォルトの名無しさん
2007/04/10(火) 20:44:08イベント発生時のサーバ側からのプッシュとか、
リクエスト同士でのデータのオンメモリでのやりとりとか。
0231デフォルトの名無しさん
2007/04/11(水) 21:22:07Writing High-Performance Server Applications in Haskell, Case Study: A Haskell Web Server
0232デフォルトの名無しさん
2007/04/15(日) 04:08:19これって、Persecに比べて何がよいの?なんか随分古そうだけど。
0233デフォルトの名無しさん
2007/04/18(水) 02:33:07オス オラ素人ハスケラー
教科書見てプログラム書くだけじゃつまんねーぞぉ
30行くらいのサンプルプログラム晒してくれ
そんでその後に説明してくれ
どーせスレのびないんだし、頼んだぞぉ!
なんならこっちで
【数学者】Haskellはクソ言語【オナニー】
http://pc11.2ch.net/test/read.cgi/tech/1128011645/
0234デフォルトの名無しさん
2007/04/20(金) 21:23:210235デフォルトの名無しさん
2007/04/20(金) 21:24:210236233
2007/04/20(金) 22:46:40余裕でスルーかよw
0237デフォルトの名無しさん
2007/04/20(金) 22:53:11おもしろそうなら食いつく奴も居るんじゃね?
0238233
2007/04/20(金) 23:17:16よし!お題です。
歌詞検索サイト
http://www.uta-net.com/user/ichiran.html?Aselect=1&Keyword=&Bselect=1&Cselect=1
このWebサイトは歌詞を教えてくれるサイトです。
ただし、コピペや印刷はできないようになっています。
けど、ソースを見れば歌詞が入っています。
パーサー作って、曲名・歌手・作詞・作曲、そして歌詞をファイルに書き出してください。
なお、このWebサイトはID5桁で全歌詞が検索できます。
http://www.uta-net.com/user/phplib/view_6.php?ID=*****
↑こんな感じ
ということで、最終的には引数に数字5桁を入力すれば
ファイルの書き出しが行われるようにしてください。
面倒であれば完璧にこなさなくてもいいです。
細かな仕様は勝手につくってください。
0239デフォルトの名無しさん
2007/04/20(金) 23:37:540240デフォルトの名無しさん
2007/04/20(金) 23:52:23おまえ真性の馬鹿だろ
0241デフォルトの名無しさん
2007/04/21(土) 01:31:53どうすればいいですか?
--ソース
import Network
main :: IO ()
main = do
sendTo "127.0.0.1" (PortNumber 9999) "test"
--エラーメッセージ
test.o:fake:(.text+0x7e): undefined reference to `networkzm2zi0_NetworkziSocket_zdf9_closure'
test.o:fake:(.text+0x1a6): undefined reference to `networkzm2zi0_Network_sendTo_closure'
test.o:fake:(.data+0x20): undefined reference to `networkzm2zi0_Network_PortNumber_static_info'
test.o:fake:(.rodata+0x0): undefined reference to `networkzm2zi0_NetworkziSocket_zdf9_closure'
test.o:fake:(.rodata+0x20): undefined reference to `networkzm2zi0_Network_sendTo_closure'
collect2: ld returned 1 exit status
GHC 6.6
Windows XP SP2
0242デフォルトの名無しさん
2007/04/21(土) 01:37:300243デフォルトの名無しさん
2007/04/21(土) 02:37:43そりゃソースはコピペできるけど直接コピーできねーじゃん
さっさと作れよハゲ
0244デフォルトの名無しさん
2007/04/21(土) 05:30:43ghc --make でおk
0246デフォルトの名無しさん
2007/04/23(月) 17:38:570247デフォルトの名無しさん
2007/04/23(月) 19:32:27でも、
一度も公の場所に出てなくて
質問している人もいっぱいいるでしょ。
0248デフォルトの名無しさん
2007/04/23(月) 21:44:260249デフォルトの名無しさん
2007/04/23(月) 21:48:30void はこのスレ的には いてはならない存在。
0250デフォルトの名無しさん
2007/04/23(月) 23:44:41ミ ・ ・ ミ [email protected]
( ° )〜 改名しました
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0251デフォルトの名無しさん
2007/04/24(火) 00:17:04おまぃのダメさ加減は誤魔化しようがない。
0252デフォルトの名無しさん
2007/04/24(火) 11:53:08(line 1, column 1):
のcolumn が常に1になってしまいます。
例えば以下のような感じです。
*Parser> runParser (reserved "test") 0 "" "testss"
Left (line 1, column 1):
unexpected "s"
expecting end of "test"
考えられる原因ってなんでしょうか?
WinXP、GHC6.6です。
■ このスレッドは過去ログ倉庫に格納されています