5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2013/03/23(土) 12:34:19.09
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/
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/
Part20 ttp://toro.2ch.net/test/read.cgi/tech/1350428908/
Part21 ttp://toro.2ch.net/test/read.cgi/tech/1358702176/

272 :デフォルトの名無しさん:2013/04/29(月) 07:47:17.94
>>271
>再帰を表現するために ArrowLoop クラスがあるそうなのですが、
再帰というより、ループのある回路を実現する
モナドでいうMonadFixみたいなもの

>例えば階乗を計算する Int -> Int 型の関数を loop 関数を使って作るとしたら、
それは例題がおかしい。やろうとしてることがArrowと関係ない
一応、関数アローを無理矢理使って書けなくもないけど

fac :: Int -> Integer
fac n = loop f n
 where
  f (k, g) = (g k, \x -> if x <= 0 then 1 else fromIntegral x * g (x-1))

273 :デフォルトの名無しさん:2013/04/29(月) 11:52:07.16
>>272
> 再帰というより、ループのある回路を実現する

それが主なんですか。

私が勉強して感じたところでは、Arrow というのは Monad と同様に
「計算」というものを抽象化して捉える見方のひとつ、こちらが本質だと思ってました。
ループというのは、再帰でループも表現できる、という感じで二次的なもの、だと。
(直感では Haskell にループという概念は似合わないような気がしてならないのですが)

> それは例題がおかしい。やろうとしてることがArrowと関係ない

私は何か重大な思い違いをしているっぽいので、
今のうちに頭をリセットして勉強しなおしてみます。

ありがとうございました。

274 :デフォルトの名無しさん:2013/04/29(月) 12:18:35.83
java にsyntax シュガーを追加した言語を追加したいんです。
コンパイラ書くなら パターンマッチがある ocaml, f#, scala, haskellだよね、と思って検討中なのですが
haskellで書くのはヤメテおいたほうがいいでしょうかね?

275 :デフォルトの名無しさん:2013/04/29(月) 13:07:21.90
>>274
> haskellで書くのはヤメテおいたほうがいいでしょうかね?

そのように思ったのは、何か不安材料でもあったから?
ghc だって Haskell で書かれているから、理論的にはなんの問題も無い。
あとは慣れとか、コンパイラ作成の参考資料の充実さの問題だと思うよ。
その点で言えば、挙げられた4言語は資料あまりないね。
どれも似たりよったりだ。

276 :デフォルトの名無しさん:2013/04/29(月) 13:17:20.25
不特定多数が気軽にいじれるようにしたいんで
I/Oの形見が狭そうなのは避けるのが無難かな、と思いまして

277 :デフォルトの名無しさん:2013/04/29(月) 14:09:23.25
>>276
Haskellをメインで使って楽しんでいる立場の俺には、
IOの形見が狭いなどとは全く感じられないのだがな。

そもそもだ、コンパイラにおいてIOが必要なのはどこだ?
外部からコンパイルするソースや設定ファイルを読み取る部分と、
コンパイルされたオブジェクトコードを外部に出力する部分、
全体の処理のうちこの両端の部分しか思いつかない。

不特定多数が気軽にいじれるようにしたいのは、
IOではなく、その間の処理の部分ではないのか?

278 :デフォルトの名無しさん:2013/04/29(月) 15:46:36.55
>>277
Haskellをメインで使ってるってパフォーマンスは満足いく?
haskellで使ってないはずのメモリ使用量が徐々に増えていかないサーバって書ける?
モナディウスもメモリ使用量の増加が止まらないわけだけど

279 :デフォルトの名無しさん:2013/04/29(月) 16:26:10.47
monadiusは古い
今はmonaris

280 :デフォルトの名無しさん:2013/04/29(月) 16:31:25.74
>>278
なにか勘違いをしている感じを受けるのだが・・・
別に仕事でメイン使っているわけではなく、
趣味で幾種類かの言語でプログラムを楽しんでいて、
その中でHaskellが一番面白いからメインで使っているだけだよ。

> Haskellをメインで使ってるってパフォーマンスは満足いく?

はじめ満足いかなくて、時間かけて根気よく改善していったことは度々ある。
その時の自分の力ではどうにもできないレベルまでいったと感じたら、
「今回はけっこう勉強になったな」と前向きに考えて、
そのテーマでは活動停止、あるいは休止する。

> haskellで使ってないはずのメモリ使用量が徐々に増えていかないサーバって書ける?

知らん、サーバーは興味ない。
サーバー上で動くWebアプリのフレームワークには多少興味あるが。

> モナディウスもメモリ使用量の増加が止まらないわけだけど

んなこと言われてもな。

モナディウスはなぜメモリ使用量の増加が止まらないんだ?
現時点で分かっている範囲で原因をリストアップしてみて、
その原因に関係有りそうな技術資料を ACM なんかで漁ってみてはどうだ。

あと、ゲームの実装なら、最新のFRPライブラリを使ってみてはどうだ。
『FRPの話』(http://maoe.hatenadiary.jp/entry/2012/12/24/011414)
ここの話だと、最近のはリークもかなら改善されているらしい。

281 :デフォルトの名無しさん:2013/04/29(月) 17:48:17.79
>>278
横からすまん

>Haskellをメインで使ってるってパフォーマンスは満足いく?
それなりに。俺の経験だと、Cと張り合おうと思うと苦しい
(やってできないことはないと思うけど)
Cより2〜3倍遅い速度なら、ちょっとパフォーマンスに気を付けるだけで達成できることが多い

>haskellで使ってないはずのメモリ使用量が徐々に増えていかないサーバって書ける?
もちろん

>モナディウスもメモリ使用量の増加が止まらないわけだけど
それはバグ。Haskellは遅延評価のせいでうっかりspace leakを仕込みやすい
直せないspace leakはない。もちろん直すのも手間がかかるのでトレードオフだけど

282 :デフォルトの名無しさん:2013/04/29(月) 17:49:45.27
>>280
原因不明のspace leakを直すのならまずプロファイルを取るのがいいよ
頭で考えたり論文を漁ったりしても滅多に役に立たない

283 :デフォルトの名無しさん:2013/04/29(月) 17:52:05.17
space leakってどういう状況で発生するの?

284 :デフォルトの名無しさん:2013/04/29(月) 17:57:21.84
>>283
http://itpro.nikkeibp.co.jp/article/COLUMN/20070403/267180/?ST=develop
(ライフラリの話は古くなってるけど)

285 :デフォルトの名無しさん:2013/04/29(月) 18:24:19.73
直せないバグはない!

286 :デフォルトの名無しさん:2013/04/29(月) 18:42:39.46
>>282
すまん、俺(>>280)の
> モナディウスはなぜメモリ使用量の増加が止まらないんだ?

これは、自分で理由を調べてみてくれと >>278 に促す意味なのだが・・・

そもそも、使ってないはずのメモリ使用量が徐々に増えていかないサーバは書けるかどうか、
という質問に添えられているからには、モナディウスでは増えていくのだが、
増えていかないようにはできるのか、それはサーバー作りでもできるのか、という問だろ。

だったら、まずモナディウスではなぜ増えるのかを調べるのが先だろ。
(そして、その原因と解決はサーバー作りに関係するのかを調べる)

で、それは他人に任せず、まずは自分で調べるべきだと思うぞ。
他人の疑問じゃなく自分の疑問なんだから。

287 :デフォルトの名無しさん:2013/04/29(月) 23:12:35.76
>>286
>だったら、まずモナディウスではなぜ増えるのかを調べるのが先だろ。
その通りだけど、
>現時点で分かっている範囲で原因をリストアップしてみて、
>その原因に関係有りそうな技術資料を ACM なんかで漁ってみてはどうだ。
こういうアドバイスが的外れだと言いたかった

288 :デフォルトの名無しさん:2013/04/30(火) 02:33:50.97
287は質問の意図を明確に伝えた方がいい
286がハスケルでどの程度の事ができるのか知りたいだけの質問じゃないのか?

289 :デフォルトの名無しさん:2013/04/30(火) 04:10:48.36
Perl忍者最近みないな

290 :デフォルトの名無しさん:2013/04/30(火) 07:01:53.22
>>288
俺(287,282)は質問してないよ

291 :デフォルトの名無しさん:2013/04/30(火) 07:10:01.48
>>287
的外れだと分かるのなら、的は何なのか具体的に説明してみてくれ。

292 :デフォルトの名無しさん:2013/04/30(火) 07:53:27.56
>>291
>>282に書いた

293 :デフォルトの名無しさん:2013/04/30(火) 12:43:09.95
>>278 の聞きたいことって、モナディウスの原因不明のspace leakを直す方法じゃなくて、
space leakが起こる仕組みじゃないの?

モナディウス「も」と言ってるわけだし、モナディウスを例に出したのは、
そう言えば確かモナディウスもスペースリーク起こしてたよね、ってニュアンスじゃね

294 :デフォルトの名無しさん:2013/04/30(火) 16:47:54.89
プログラムには二種類の時間がある

実行開始してから結果が出るまでの時間
プログラムが出来上がるまでの時間

役に立つか確信の持てないものを創る場合は後者を重視し
確信が持てたら前者を重視する

確信の度合いの変化に応じて最適化に注ぐ情熱の量を切り替える

この切り替えはときに道具を変えることも含まれる

確信を持つ主体はなにか?
プログラマか?所属組織か?社会か?
そして俺は何を言いたいのか?

295 :デフォルトの名無しさん:2013/04/30(火) 16:55:13.01
またいつものキモいやつか

296 :デフォルトの名無しさん:2013/04/30(火) 20:46:35.13
ライブラリをオフラインのスタンドアロンマシンにインストールする方法の解説ってどこかにありますでしょうか?

297 :デフォルトの名無しさん:2013/04/30(火) 20:58:19.17
Real World Haskell のP80で詰まった。
concatを定義を使ってある関数を作ろうとしたんだけどエラー出てワケワカメ。たすけて
concatenate :: [[a]] -> [a]
concatenate list = case (list) of
[] -> []
(x:xs) -> x ++ concatenate xs

concatenate' :: [[[a]]] -> [a]
concatenate' list = case (list) of
[] -> []
(x:xs) -> concatenate x ++ concatenate' (concatenate xs)

298 :デフォルトの名無しさん:2013/04/30(火) 22:28:17.39
>>297
> (x:xs) -> concatenate x ++ concatenate' (concatenate xs)
(x:xs) -> concatenate x ++ concatenate' xs

じゃない?

299 :デフォルトの名無しさん:2013/04/30(火) 22:36:35.56
>>298
ありがとう!何でconcatenate関数を使ったんだろう?
気を付けます。

300 :デフォルトの名無しさん:2013/04/30(火) 23:06:19.80
名前が一々長いとワーキングメモリを圧迫するから

301 :デフォルトの名無しさん:2013/04/30(火) 23:13:44.13
haskell は名前にハイフン使えないのが不満なんだけど、どうにかならない?キャメルノーテーシヨンだと名前が長ったらしく見えるんだけど。

302 :デフォルトの名無しさん:2013/05/01(水) 00:52:43.77
アンダースコアじゃなくてハイフン?普通使わないと思うが……

303 :デフォルトの名無しさん:2013/05/01(水) 01:06:04.18
LISP組の人はハイフン使う

304 :デフォルトの名無しさん:2013/05/01(水) 07:37:17.47
「普通使わない」ってすごいな
「使えないのが不満」に対して何も答えてない

305 :デフォルトの名無しさん:2013/05/01(水) 07:43:35.67
解決になってないだけで答えてるじゃん

306 :デフォルトの名無しさん:2013/05/01(水) 08:06:37.12
Agdaも割りとハイフン使う

307 :デフォルトの名無しさん:2013/05/01(水) 08:06:39.17
演算子間に空白を開ける必要性とのトレードオフ

308 :デフォルトの名無しさん:2013/05/01(水) 09:49:33.39
>>307
おれは演算子間のスペースは空けとかないと不安でしかたない

309 :デフォルトの名無しさん:2013/05/01(水) 10:28:27.04
アンダースコア使えばいいじゃん

310 :デフォルトの名無しさん:2013/05/01(水) 10:38:05.95
アンダースコアはハイフンが使えないから仕方なく使うものだよ。英文でアンダースコアなんてめったに使わないでしょ。
do-something
doSomething
do_something
明らかにハイフンが自然。異論は認める。

311 :デフォルトの名無しさん:2013/05/01(水) 11:12:22.76
>>310
スペースの代わりだと思っていた。

312 :デフォルトの名無しさん:2013/05/01(水) 11:13:05.38
でも x:xs って書きたいでしょう?
x : xs はマヌケ

313 :デフォルトの名無しさん:2013/05/01(水) 11:44:05.66
マイナスとハイフンをいっしょくたにしたASCIIが悪い

314 :デフォルトの名無しさん:2013/05/01(水) 11:49:43.94
外国人もときどき ! と 1 の区別がつかなくなるからそれは仕方ない

315 :デフォルトの名無しさん:2013/05/01(水) 12:39:02.28
それより、単項マイナス演算子が普通には使えない仕様をどうにかしてほしいのだが

316 :デフォルトの名無しさん:2013/05/01(水) 12:45:38.66
無理じゃね?
単項演算子と二項演算子のどちらの可能性もあって
しかもカリー化もあるんだから

317 :デフォルトの名無しさん:2013/05/01(水) 13:18:34.08
SMLみたいな、~を単項マイナスにすればおk、というのが多分機械可読テキストとしては
一番エレガントな解決法だけど、HMI的には微妙。

318 :デフォルトの名無しさん:2013/05/01(水) 15:32:07.13
AgdaのmixfixをHaskellにもくれ

319 :デフォルトの名無しさん:2013/05/01(水) 22:47:38.28
>>312
おれはスペース空けたい派。x:xs って書くと窮屈。

320 :デフォルトの名無しさん:2013/05/01(水) 23:32:01.04
わかる 目が寄る

321 :デフォルトの名無しさん:2013/05/02(木) 01:53:20.62
>>310
うん。
けど海外でdoSomethingの書き方が嫌いな人はdo_something使ってる。

322 :デフォルトの名無しさん:2013/05/02(木) 03:11:29.11
Haskellはアンダースコアの関数とか殆どないし、他の記法と揃えるようにしてるな

323 :デフォルトの名無しさん:2013/05/02(木) 14:18:28.38
ハイフンは減法演算子にとっておく。
アンダースコアはスペースの代わり。
記号前後のスペースは必要。バグが極端に減る。入れない奴は自己中の証拠と知れ。

324 :デフォルトの名無しさん:2013/05/02(木) 14:43:22.08
(x:xs) を ( x : xs ) と書くことで「バグが極端に減る」証拠があるなら見せてくれ。

325 :デフォルトの名無しさん:2013/05/02(木) 20:51:09.46

ぱっと見、x:xsとxxsの違いがわからない
スペースあけないのはバカかゴミだけ

326 :デフォルトの名無しさん:2013/05/02(木) 20:54:24.05
標準ライブラリ書いてるのはバカかゴミ

327 :デフォルトの名無しさん:2013/05/02(木) 21:04:51.46
ソースを見る時、たいていは記号と識別子の色は分けて表示されるから、
実際のところ、ぱっと見x:xsとxxsの違いが分からないなんて事は無いな。
(見やすい等幅フォント使ってるし)

でも、言いたいことは分かる。
Haskellで使う全ての記号についてというのは言い過ぎだが、
記号と識別の間を開けた方が見やすい場合は少なくないね。

328 :デフォルトの名無しさん:2013/05/02(木) 21:06:42.60
あと、バカとかゴミとか、なに興奮してるのか知らんけど、もう少し落ち着いて

329 :デフォルトの名無しさん:2013/05/02(木) 21:19:50.10
ものによるな
x:xsはもうひと固まりとして認識できるレベルで頻出だから空けない

330 :デフォルトの名無しさん:2013/05/02(木) 21:29:26.23
>>328
良いこと言うね、同意。

331 :デフォルトの名無しさん:2013/05/02(木) 21:39:45.91
>>326
ひどい(ひどいよぉ)

332 :デフォルトの名無しさん:2013/05/02(木) 22:07:59.07
>>331
>>326 は皮肉だろ

標準ライブラリをざっと見てみると、パターンとして現れる場合は (x:xs) とくっつけて、
式として現れる場合は x : xs と離している傾向があるような気がする。

333 :デフォルトの名無しさん:2013/05/02(木) 22:09:37.18
好きにすりゃええがな

334 :デフォルトの名無しさん:2013/05/02(木) 22:15:58.44
>>332
>>331 はアニソンの歌詞だろ

335 :デフォルトの名無しさん:2013/05/02(木) 22:25:14.18
>>334
すまん、それは知らなかった

336 :デフォルトの名無しさん:2013/05/02(木) 22:45:31.07
いいってことよ

337 :デフォルトの名無しさん:2013/05/02(木) 23:06:18.10
Haskellでキーボードの←→キーが押されたらその方向にキャラが歩いてすばやく2回同じキーが押されたらその方向に走って
↑キーが押されたら押され続けた時間に応じてキャラが小ジャンプ、大ジャンプするサンプルください
GHC platformのみインストールされた環境で動くもので
画面描画のバックエンドはopengl+glutでお願いします

338 :デフォルトの名無しさん:2013/05/03(金) 03:40:50.28
Grahpics.UI.GLUT の KeybordMouseCallback のサンプルとドキュメントが入ってたはず

339 :デフォルトの名無しさん:2013/05/03(金) 16:17:19.49
x :xs

340 :デフォルトの名無しさん:2013/05/03(金) 21:44:20.08
Q:-P

341 :デフォルトの名無しさん:2013/05/05(日) 13:09:09.38
The Glorious Glasgow Haskell Compilation System, version 7.4.2を使っています。
uniq :: Eq a => [a] -> [a]
uniq [] = []
uniq [x] = [x]
uniq (x1:xs@(x2:_)) | x1 == x2 = uniq xs
| x1 /= x2 = x1 : uniq xs
というコードを書いてコンパイルすると、
retu.hs:27:1:
Warning: Pattern match(es) are non-exhaustive
In an equation for `uniq': Patterns not matched: _ : (_ : _)
と言われます。
このuniqの定義は自分にはexhaustiveに思えるのですが、
何か見落としているのでしょうか。

342 :デフォルトの名無しさん:2013/05/05(日) 13:54:52.70
GHCだと問題ないけど

343 :デフォルトの名無しさん:2013/05/05(日) 13:57:21.20
>>341
こちらも、ghc 7.6.2 で問題なかった。

344 :デフォルトの名無しさん:2013/05/05(日) 14:04:39.23
>>341
パターンじゃなくて、ガードに問題がある
== と /= ですべての状態をカバーしてると思われてない

uniq :: Eq a => [a] -> [a]
uniq [] = []
uniq [x] = [x]
uniq (x1:xs@(x2:_))
| x1 == x2 = uniq xs
| otherwise = x1 : uniq xs

でok

あるいは /= の実装で otherwise を使えばokかと

345 :デフォルトの名無しさん:2013/05/05(日) 14:09:47.42
せやな

346 :341:2013/05/05(日) 14:14:24.16
なるほど、ありがとうございます
確かに==と/=だと、それぞれの演算子の意味を解析しないと
exhaustiveかどうか分からないですからね

/=の実装がotherwiseとおっしゃっているのは、
f x | hoge x = True
  | otherwise = false
notF x = not $ f x
のような実装をすればパターンマッチで判定が出来るから、
という事ですか?

347 :デフォルトの名無しさん:2013/05/06(月) 00:09:01.32
Grahpics.UI.GLUT の KeybordMouseCallback のサンプルとドキュメントがどこにあるのかみつかりまふぇん(;-;)

348 :デフォルトの名無しさん:2013/05/06(月) 16:44:01.16
>>347
ドキュメント
http://www.haskell.org/haskellwiki/OpenGLTutorial1
http://www.haskell.org/haskellwiki/OpenGLTutorial2
http://www.cs.hs-rm.de/~panitz/hopengl/skript.html
http://www.renci.org/wp-content/pub/tutorials/BeautifulCode.pdf
http://www.cin.ufpe.br/~haskell/hopengl/

サンプルは
The OpenGL Programming Guide: The Official Guide to Learning OpenGL

The OpenGL Shading Language
の中の例題の一部に対応するサンプルがGLUT-2.4.x.xのexamplesフォルダの中に入ってる

349 :デフォルトの名無しさん:2013/05/07(火) 00:13:00.71
わーいありがと

350 :デフォルトの名無しさん:2013/05/07(火) 16:32:56.45 ID:+yPWQW2x
(3::Int16) ← 一々括弧付けなきゃならないのがウザい

351 :デフォルトの名無しさん:2013/05/07(火) 17:07:59.90
Int16を値に降格できて
asTypeOf 3 Int16
とかできたらいいのにな

352 :デフォルトの名無しさん:2013/05/07(火) 19:35:34.67
前スレッド http://tech.log2.me/1358702176_900.html >>961
に書いたパルズ解答ソフトについて。
Haskellに慣れるための習作として作っているけれども。
計算時間は、目標…2秒以内に到達。C++版より多少遅い程度まで改善させた。

ソースコードサイズ(未参照コード含む)
C++版 167kB
Haskell版 54kB(3月中旬版)
Haskell版 68kB(5月前半版)

計算時間
C++版 1.77秒
Haskell版 38.2秒(3月中旬版)
Haskell版 1.93秒(5月前半版)

プロファイル機能は役にたった。
予想外に演算負荷を使っていたところがあった。

これで、Haskell に慣れたと言っていいかな。
次に本番…ゲーム作成に取り掛かりたいと思う。

353 :デフォルトの名無しさん:2013/05/07(火) 23:09:48.16
haskell始めようと思ったもののGHC.exeが開かないんだけど
バイナリパッケージをダウンロードするだけだよね
もしかして他に何か必要なファイルとか他にあるの?

354 :デフォルトの名無しさん:2013/05/07(火) 23:20:46.58
ない

355 :デフォルトの名無しさん:2013/05/07(火) 23:31:46.79
ありがとう
もう一回ダウンロードしてみる

356 :デフォルトの名無しさん:2013/05/08(水) 00:25:49.79
.exeってことはWindowsでやろうとしてるのか。
単純にGHCをインストールするよりHaskell Platformをインストールしろと公式が推奨してるだろ

というかそもそもGHC.exeを開くってなんだ? 何がしたいんだ? 訳がわからんぞ

357 :デフォルトの名無しさん:2013/05/08(水) 00:42:38.56
バイナリパッケージってPlatformのことじゃなかったのか・・・
それならだめだ

358 :デフォルトの名無しさん:2013/05/08(水) 21:33:24.03
入力した名前に対してイニシャルを返す関数
initials :: String -> String -> String
initials firstname lastname = [f] ++ ". " ++ [l] ++ ". "
where (f:_) = firstname
(l:_) = lastname
ってソースをコンパイルして実行
ghci> initials hoge poyo
って入力すると,
Not in scope: `hoge'
Not in scope: `poyo'
と出て詰んでます...すごいH本通りの記述ですし見る限りwhereのスコープ内だと思うのですが...

359 :デフォルトの名無しさん:2013/05/08(水) 21:39:24.65
ghci> initials "hoge" "poyo"
だろ

360 :デフォルトの名無しさん:2013/05/08(水) 21:40:42.80
プログラミングなんてやめて別のことした方がいいよ

361 :デフォルトの名無しさん:2013/05/08(水) 21:43:45.02
>>359 ありがとうございます>< お恥ずかしい限りです

362 :デフォルトの名無しさん:2013/05/09(木) 00:32:12.14
初めての言語がHaskellなのか?
高度な変態だな

363 :デフォルトの名無しさん:2013/05/09(木) 00:34:57.85
下手に他の言語の知識ないほうが覚えやすいという可能性も

364 :デフォルトの名無しさん:2013/05/09(木) 00:47:11.91
始めての言語が haskell って凄いhaskell モンスターに育ちそう。頑張れ!

365 :デフォルトの名無しさん:2013/05/09(木) 01:17:09.85
C++とかやらせたらすごい富豪PGやらかしそう
てかまず一流のメモリリーカーになりそう

366 :デフォルトの名無しさん:2013/05/09(木) 01:35:45.70
もうそろそろプログラマにメモリのことを考えさせる時代が終わってもいいはずだ

367 :デフォルトの名無しさん:2013/05/09(木) 01:37:05.14
ノイマン型が続く限りメモリ関連の悩みは尽きることはない

368 :デフォルトの名無しさん:2013/05/09(木) 02:00:46.11
いつから非ノイマン型でメモリ関連の悩みが消えるかもしれないと錯覚していた?

369 :デフォルトの名無しさん:2013/05/09(木) 02:03:45.98
クラウドベースになればjavascriptあたりがCに取って代わるからとりあえず自前のメモリ管理は不要になるかと

370 :デフォルトの名無しさん:2013/05/09(木) 02:09:37.37
別にクラウドベースにしなくてもガベージコレクションがある言語を使えば同じことじゃん
例えばHaskellとか

371 :デフォルトの名無しさん:2013/05/09(木) 02:27:59.49
俺ならせめてerlang薦めるな

225 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)