1 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:41:29 ] haskell.org www.haskell.org/ 日本語サイト www.sampou.org/cgi-bin/haskell.cgi www.shido.info/hs/ 過去ログ 関数型プログラミング言語Haskell Part1 pc.2ch.net/tech/kako/996/996131288.html Part2 pc2.2ch.net/test/read.cgi/tech/1013846140/ Part3 pc8.2ch.net/test/read.cgi/tech/1076418993/ Part4 pc8.2ch.net/test/read.cgi/tech/1140717775/ Part5 pc8.2ch.net/test/read.cgi/tech/1149263630/ Part6 pc11.2ch.net/test/read.cgi/tech/1162902266/ Part7 pc11.2ch.net/test/read.cgi/tech/1174211797/ Part8 pc11.2ch.net/test/read.cgi/tech/1193743693/ ・2chの仕様により、行頭の半角スペースは表示されません。 コードをインデントしたいときは、代わりに または全角スペースを使うことができます。
263 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 19:21:38 ] zip [] ⊥ = [] らしいから>>260 と>>261 は等価かな こういうのを意識しないといけない場面だと非正格性が気持ち悪い
264 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:09:28 ] >>263 ⊥って勃起してるのw?
265 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 01:03:13 ] いやむしろ tail で書けて気持ちいいだろ。
266 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 06:18:25 ] >>265 でも zip (tail xs) xs と zip (drop 1 xs) xs は等価じゃない つまり、zipでは第一引数が先に評価されるということを覚えていないといけない分、ややこしい (厳密には評価順の問題じゃなくて「zipは第一引数について正格で第二引数について非正格」ということだけど)
267 名前:デフォルトの名無しさん [2008/06/24(火) 07:48:57 ] >>266 どういうこと? 例えば f (x1 : x2 : x3 : xs) -> x1 + x3 だったら、引数のリストの最初の要素と3番目の要素について正格ってこと?
268 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 08:32:09 ] >>267 そういうつもりで「正格」という言葉を使った
269 名前:初心者修業中 mailto:sage [2008/06/24(火) 09:53:02 ] 関数結合の(.)って優先順位が高いので、 どうしても括弧が増えて見ぐさい気が…。 こんなのがあったら便利だと思うんですけど、 ↓ infixr 1 $. ($.)=(.) こんな感じ ↓ sigma = tail $. scanl (+) 0 標準ではなさそうなんですが、 やっぱ、問題ありですかね?
270 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 09:55:22 ] 慣れの問題
271 名前:初心者修業中 mailto:sage [2008/06/24(火) 10:13:14 ] ああ、勘違いしてました。 関数の優先順位はどの演算子よりも上ですね。 これで問題ないのか ↓ sigma = tail . scanl (+) 0 >>270 レスありがとうございます。 早く慣れたいです。 まだ、頭で考えないとよくわからない。 (考えてもわからない時ありw)
272 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 11:35:10 ] >>266 「厳密には」も何も最初っからそう
273 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 12:56:24 ] >>266 > 覚えていないといけない 覚えてなくてもプログラム書くのにはなにも困らない。 等価性とか考えだすと全部正格のほうが楽かもしれんけど。
274 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 18:49:23 ] >>273 書くときは良くても読むとき困る 例えば>>260 のコードが空リストに対しても正しく動作するかどうか確かめるのに、 いちいちPreludeの仕様を読まないといけない zipみたいに明確な定義のある関数ならまだいいけど、 例えばhPutStrLn undefined ""の値が 1. ⊥ 2. 実行時にエラーになるアクション 3. ()を返すアクション のどれになるかは仕様では決まっていないはずで、ちょっと厄介
275 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 15:42:16 ] >>274 その辺は想像で読めば十分じゃない? zip xs (tail xs) とあって、 コードを書いたのが信頼できる人なら、 zip は第二引数について非正格なのだろうな、とか。 hPutStr undefined "" も、 hPutStr _ "" = return () と定義されては無いだろうし、 undefined が正しいハンドルじゃないからと hPutStr が独自にエラーを出すというのも、 先に undefined が評価されるから有り得ないだろう、とか。 hPutStr (error "1") (error "2") にしても error "1" だろう、とか。
276 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 15:49:33 ] ム板のやつらはなんでこんなに視野が狭いんだろうといつも思う。
277 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 17:38:53 ] 3の場合 main「ちょっと undefined に "" 出力してこい」 hPutStrLn「へい」 ...数十ns後 hPutStrLn「やってきやした」 main「おまwwww改行どうしたwwwwwwww」 >>276 正直くだらないネタ以外はここではなく他の所に書く。
278 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 18:27:02 ] 質問です HaskellでGPGPU関連の話題ってありませんか?
279 名前:274 mailto:sage [2008/06/25(水) 20:23:02 ] すまん、hPutStrLnじゃなくてhPutStrじゃないと話が合わないな >>275 >コードを書いたのが信頼できる人なら、 勉強のためにコードを読んでるならいいけど、 レビューとかデバッグとかしてるならそうはいかないだろ >hPutStr が独自にエラーを出すというのも、 誤解させたかもしれんが、HugsもGHCも2.の振る舞いをする 実行した時点でundefinedが評価されてエラー発生ね でも、例えば最適化のために hPutStr h s = seq h $ ... みたいな実装になってたら1.だし、 hPutStr h s = mapM_ (hPutChar h) s みたいな定義が考えられる以上3.もあり得なくはない 結局、非正格がデフォルトなせいで関数の仕様に書かなければいけない事項が多いのが問題 それを不用意にうやむやにすると関数の振る舞いが実装に依存してしまう それほど頻繁に問題になることではないけど、たまに面倒
280 名前:275 mailto:sage [2008/06/25(水) 21:28:51 ] >>279 > レビューとかデバッグとかしてるならそうはいかないだろ うん。 > hPutStr h s = mapM_ (hPutChar h) s > みたいな定義が考えられる以上3.もあり得なくはない なるほど。 > それほど頻繁に問題になることではないけど、たまに面倒 そういうこったね。
281 名前:275 mailto:sage [2008/06/25(水) 21:32:14 ] > 誤解させたかもしれんが、HugsもGHCも2.の振る舞いをする > 実行した時点でundefinedが評価されてエラー発生ね そういうつもりでしたか。 ちなみにそれだと1.はどういうつもりだったのですか?
282 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:49:44 ] >>281 hPutStr undefined "" `seq` 0 を評価してエラーが発生すれば1.だよな 実際試したらHugsでもGHCiでもエラーは発生しなかった
283 名前:275 mailto:sage [2008/06/25(水) 22:26:04 ] なるほど。というか>>279 をちゃんと読んでませんでしたごめんなさい。
284 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 21:37:05 ] 一通りよく取り上げられる教科書は読んだんですが、Arrowなどの 比較的新しい技法についてわかりやすく書かれた文書はどの辺 でしょうか。
285 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:11:25 ] 本家から辿って論文を読むのがいいと思うよ。
286 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:16:36 ] Arrow アーーー
287 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 23:28:26 ] arrowねぇ・・・イマイチだねぇ・・・ プログラミング的にはこれといってメリットないよ。
288 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 00:23:45 ] >>284 www.haskell.org/haskellwiki/Arrow
289 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 00:05:34 ] arrowで量子コンピュータのシミュレーションやってます めっちゃべんりですっっっっs
290 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:15:42 ] ユニタリ変換の理解が一つの山かも。
291 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 01:22:40 ] ユニタリ変換?高校生でも知ってるよ
292 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 10:42:43 ] 皆さん、エディタは何使って書いてますか?
293 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 10:48:09 ] emacsしか選択肢ないんじゃね? eclipseは糞だし。
294 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 11:10:10 ] vim
295 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 11:45:12 ] notepad.exe
296 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 12:32:37 ] vimやemacsだと使い勝手のいいプラグインあるんでしょうか。 自分もEclipseはちょっと嫌ですねぇ。
297 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 12:44:03 ] www.haskell.org/libraries/haskell.vim その他いろいろ $ hugs -Evim
298 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 16:06:10 ] Haskellの構文解析ってどういう風な作りになってるん? 結合性宣言があったりするので、 トークン読んだ時点では構文木を作れないような気がするんだけど。 何かの資料とか、HugsやGHCでの実現方法のソースとかあったら教えてくだしあ
299 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 16:38:24 ] >>298 GHCはとりあえず全部左結合として解析(parser/Parse.y)して、 後のrenameのパスで結合性宣言をもとに組み立て直してる(rename/RnExpr.lhs)
300 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 16:57:55 ] >>292 俺もvimだわ なんか文法と相性良さげだし
301 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:16:47 ] >>299 そういう手があったか。いや、全然関係ないパーサを先日作ってたんだが。 パス(1パスコンパイラとか2パスコンパイラとかのパス)にこだわっていては 非富豪的かねぇ。
302 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 18:10:34 ] 左結合にするってのは、 とりあえずリンクトリストにしといてから、 あとでパーズしなおすって事。
303 名前:デフォルトの名無しさん mailto:sa [2008/06/28(土) 18:39:00 ] >>292 俺はAgda使ってるよ。結構使いやすい。
304 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 20:10:12 ] project eulerに接続できねーぞ!!! どうなってんだ糞
305 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 20:19:06 ] 質問です グラフの研究で路線データ(や道路のデータなど)が使いたいのですが、 そういうデータを手に入れるにはどうすればいいですか?
306 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 21:47:48 ] >>305 質問です Haskellと関係ありますか?
307 名前:298 mailto:sage [2008/06/28(土) 22:27:19 ] >>299 ,302 thx、参考になった。 細かく追えてないけど、かなりがんばらないとparseできないってことか。
308 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 08:23:28 ] とりあえず左結合って要するにS式だよね。
309 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 18:44:49 ] Real World Haskell www.amazon.co.jp/Real-World-Haskell-Bryan-OSullivan/dp/0596514980/ > This easy-to-use, fast-moving tutorial introduces you to functional > programming with Haskell. Learn how to use Haskell in a variety of > practical ways, whether it's for short, script-like programs or large > and demanding applications.
310 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 02:44:41 ] 中身読めるよ book.realworldhaskell.org/beta/ 表紙が決まったんだね。ヘラクレスオオカブト?
311 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 03:40:51 ] 後の兜本である。
312 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 22:40:44 ] オライリーからHaskellの本が出るなんてありえない。 そう思っていた時期が僕にもありました
313 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 23:40:42 ] 2008/09 ちょおまw
314 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 04:55:50 ] >>310 全30章中残りは3章。 20. The foreign function interface 27. Profiling and tuning for performance 30. A concurrent RESTful web application 書きにくそうなのが残った感じw
315 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 08:14:01 ] 初心者用のスレで関数型の話をすると罵られる。なぜだろう。
316 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 12:30:55 ] 初心者には関数型が高尚すぎて理解できないからです。
317 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:36:35 ] しつもんです らむだけいさんってなんですか?
318 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:38:52 ] 世界遺産の一種です
319 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 23:44:40 ] ttp://wwwfun.kurims.kyoto-u.ac.jp/MtLambda.html
320 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 05:32:31 ] 全部ひらがなだとぱっと見、人名かなんかかと思った。羅武田圭さんとか。
321 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 16:58:13 ] 俺がムラタだ
322 名前:36 ◆K0BqlCB3.k mailto:sage [2008/07/11(金) 01:58:31 ] hackage.haskell.org/trac/ghc/wiki/DataParallel/WorkPlan とっとと仕事しろやボケ
323 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 09:38:42 ] まあ遅延評価だから
324 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 10:04:21 ] 等無駄計算
325 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 16:03:12 ] >>322 なにエラソーに言ってんだよ。しょーもない評論家なくせして。
326 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 00:59:56 ] 名村啓?
327 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 23:31:18 ] do記法で 'aとか''aとか出てきますが どのような意味なのでしょうか
328 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 01:16:27 ] >>327 具体的なコード書いてみて
329 名前:デフォルトの名無しさん [2008/07/21(月) 15:09:50 ] >>327 a'とかa''じゃなくて? ちなみにそれならただの変数名だよ。
330 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 15:13:03 ] >>329 見直したらそうでした 許してくださいw ごめんなさい
331 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:32:45 ] \_ -> k この\_ってC++のtemplate <t>みたいなもんですか?
332 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:38:07 ] 全然違います
333 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:43:54 ] >>332 じゃあ何なのでしょうか?
334 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:55:35 ] ttp://www.codelogy.org/archives/2008/04/haskell_4.html ていうかなんか一冊入門書買うことをおすすめする
335 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 01:00:32 ] なんか夏まっさかりって感じ?
336 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 01:40:52 ] 質問の仕方スレもいるな Haskellでぐぐっていくつか読めばわかるぐらいのことで これって型でしょ 違います じゃあなんなんだよ つ やさしいHaskell入門
337 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 19:44:30 ] おい、おまえらの仲間が「初心者のための〜」スレで暴れてるから早く回収してくれ
338 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 20:22:33 ] 狂犬に噛まれて狂犬が増えるって 怖くね?
339 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:34:24 ] あれは仲間じゃない
340 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:01:40 ] そもそもスレタイからして興味ない話だし。 向こうで完結して。
341 名前:36 ◆K0BqlCB3.k mailto:sage [2008/07/27(日) 02:23:52 ] さて、この夏、何かおもしろいことでもしようかな。
342 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 10:47:30 ] お前らの中にアホがいます 他のスレを荒らすならここを荒らしますよ?
343 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 12:10:53 ] >>342 ほー、やってみてください。本当にできるのですか?
344 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:11:28 ] 夏厨誕生物語 A 「この夏、何かおもしろいことでもしようかな。」 B 「ならスレ荒らししてみれば?」 A 「簡単にできるのですか?」 B 「こうやれば邯鄲」 A 「ネ申キター!d!マジ面白いね。他スレ荒らしてクルーwktk」
345 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 05:48:39 ] 注目ワード“高階プログラミング”って何だ? ttp://ascii.jp/elem/000/000/157/157495/
346 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 06:00:24 ] >>345 面白かった。サンクス。
347 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:32:59 ] 仕事でHaskellできるなんて羨ましいなぁ。
348 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:30:02 ] >>345 nobsunだね。
349 名前:デフォルトの名無しさん [2008/08/06(水) 20:47:23 ] ハイカラなシャツ着てる
350 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 22:06:03 ] この会社ってホームページ見た感じ普通のSI会社に見えるけど、 山下さんなんかがいるってことは特殊な会社? Haskellの開発コンサルということだけど、一般企業の業務システム なんかを対象にしてるのかな。金融系とか合ってそうだけど、 普通の土方システムには豚に真珠かな。
351 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 22:30:36 ] >>350 看板役みたいなものだよ。 よくあること。 SRAでも青木淳みたいなのを雇っているけど、青木は普通の仕事はしていないね。 金にならないことを自由にやっているって感じ。 ちなみに、青木の部下はかわいい女の子限定。
352 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 05:56:03 ] まあ、天才ならなんでも許されるってことだ。
353 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 07:30:34 ] >>351 青木はSRAやめたよ
354 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 08:39:56 ] >>345 nobsunのコードは以前からスゲーと思ってたけど、こんな会社のこんな人なんだ。知らなかった。 会社の事業だけ見ると、Haskell関係なさそうだね。Higher Order Programmingってなんだ?造語か? もっと記事をよく見てみる。
355 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 08:55:02 ] >>354 ちょ、おまwww
356 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 09:12:13 ] Higher Order Programming: プログラミングを丸投げするためのプログラムを書くこと
357 名前:デフォルトの名無しさん [2008/08/07(木) 09:45:57 ] 継続ベースのWebフレームワークってHaskellにもありますでしょうか。
358 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 12:53:37 ] >>350 あそこって、gaucheかんけいなひとがおおそうなんだけど。
359 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 12:58:00 ] >>358 そりゃそうだ。普通のJaverやC++マが金を取ってこなきゃ、 みんなgaucheとかに走ったら誰が食い扶持を稼ぐんだって。
360 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 13:19:40 ] 二等兵には二等兵の仕事があるわな。
361 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 13:46:18 ] むしろ、パンダと飼育員。
362 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 13:54:11 ] 俺はまだ士官候補訓練兵だ
363 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 16:12:52 ] あの写真を見て 小野伸二を思い出したんだけど。nobsunはやっぱり天才なんですかね。