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

このエントリーをはてなブックマークに追加
1デフォルトのモナドさん
2デフォルトの名無しさん:2013/08/10(土) 14:17:49.87
3デフォルトの名無しさん:2013/08/10(土) 14:57:47.13
関連書籍
・Introduction to Functional Programming Using Haskell (2nd ed.)
 http://www.amazon.co.jp/exec/obidos/ASIN/0134843460/

・Haskell: The Craft of Functional Programming
 http://www.amazon.co.jp/exec/obidos/ASIN/0201342758/

・The Fun of Programming
 http://www.amazon.co.jp/exec/obidos/ASIN/0333992857/

・The Haskell School of Expression: Learning Functional Programming Through Multimedia
 http://www.amazon.co.jp/exec/obidos/ASIN/0521644089/

・入門Haskell
 http://www.amazon.co.jp/exec/obidos/ASIN/4839919623/

・ふつうのHaskellプログラミング
 http://item.rakuten.co.jp/book/4052963/

・Programming in Haskell
 http://www.amazon.co.jp/exec/obidos/ASIN/0521692695/

・Real World Haskell
 http://www.amazon.co.jp/exec/obidos/ASIN/0596514980

・関数プログラミングの楽しみ
 http://www.amazon.co.jp/exec/obidos/ASIN/4274068056

・すごいHaskellたのしく学ぼう!
 http://www.amazon.co.jp/dp/4274068854
4デフォルトの名無しさん:2013/08/10(土) 14:59:42.35
関連リンク
・GHC Wiki
 http://hackage.haskell.org/trac/ghc/wiki/TitleIndex

・A History of Haskell
 http://research.microsoft.com/en-us/um/people/simonpj/papers/history-of-haskell/

・関数型関連の用語集
 http://sky.zero.ad.jp/~zaa54437/programming/concepts/

・本物のプログラマはHaskellを使う
 http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/?ST=ittrend

・Haskell API search Engine
 http://www.haskell.org/hoogle/

 【簡単な使い方】
 1.検索バーに関数名を入れて検索
  例 map
 2.検索バーに型名を入れて検索
  例 (a -> b) -> [a] -> [b]

・Real World Haskell
 http://book.realworldhaskell.org/read/

・Learn You a Haskell for Great Good!
 http://learnyouahaskell.com/chapters
5デフォルトの名無しさん:2013/08/10(土) 15:23:38.46
OCamlはもうすぐReal World OCaml出るらしいが、Haskellはなんかないんかね
今ある本って初心者向け以外は古いよね
6デフォルトの名無しさん:2013/08/10(土) 20:17:18.19
Real World Haskell 改訂版か...それが今一番望まれてる?
7デフォルトの名無しさん:2013/08/10(土) 20:32:05.57
もっとすごいH本ではなかろうか
8デフォルトの名無しさん:2013/08/10(土) 20:41:00.01
並列、並行
http://chimera.labs.oreilly.com/books/1230000000929
Yesod
http://www.yesodweb.com/book
の本は結構あたらしい
9デフォルトの名無しさん:2013/08/11(日) 00:38:54.81
イカ娘本買ってきて
10デフォルトの名無しさん:2013/08/11(日) 01:36:10.15
三:=>
11デフォルトの名無しさん:2013/08/12(月) 23:23:31.07
オラHaskellでゲーム作るぞと意気込んでたけど
副作用がある部分書こうとするととたんに面倒になるからだんだん飽きてきたぞ
12デフォルトの名無しさん:2013/08/13(火) 00:03:09.81
"Haskell Arrow"でググったらwhitehackerzのサイトが出てきて
人生の貴重な10秒間をゴミみたいな茶番で無駄にしたんだが
あとGoogleのサイトブロック機能使えなくなってるじゃねえかあーくそ
13デフォルトの名無しさん:2013/08/13(火) 01:11:08.70
新スレおめでとうございます^^
14デフォルトの名無しさん:2013/08/13(火) 01:14:19.98
>>8
最初の、翻訳版は?
15デフォルトの名無しさん:2013/08/16(金) 16:12:40.51
ここの人はScala触ったりしないの?
Javaの資産使えたりEclipse使えたり本もHaskellより多そう
俺は勉強中の身なんでHaskellに集中します
16デフォルトの名無しさん:2013/08/16(金) 18:50:39.95
遅延評価デフォの方が面白い

実用的かどうかは知らんが
17デフォルトの名無しさん:2013/08/17(土) 01:00:56.61
ScalaはJavaの資産そのままそっくりというわけにはいかない
標準のフレームワークが(結構)重い
そしてHaskellのクラス/インスタンスみたいのをやろうとすると面倒
JVMで動くだけでかなり魅力的だけどね
18デフォルトの名無しさん:2013/08/17(土) 01:35:16.47
JVM上で動く実用的なHaskell処理系ってあるのかな?
19デフォルトの名無しさん:2013/08/17(土) 02:49:25.64
Fregeは結構本気でHaskellをJVMに、って感じでやってるんじゃないの?
使ったことないので言語仕様がどうとかは知らない
20デフォルトの名無しさん:2013/08/17(土) 16:20:54.73
アセンブラのように低レベルじゃない中途半端な言語使って
製品にも昇華できない

>・本物のプログラマはHaskellを使う
>//itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/?ST=ittrend

こんなのを誇らしげにテンプレに入れてる
ほかのテンプレの質も低下してる
ゴミが増えてる

論理力も無く、話に一貫性も無く、支離滅裂で感情論たれ流しで、ユーモアも無く、具体的な話しかできない
21デフォルトの名無しさん:2013/08/17(土) 17:45:09.95
誇らしげだとか質が低下だとか言うけど、前スレのをコピペしただけだよ。
荒らしたがってる所ごめんね。
22デフォルトの名無しさん:2013/08/17(土) 18:08:21.07
つ鏡
と思ったが俺のことが書いてある。
23デフォルトの名無しさん:2013/08/17(土) 18:09:47.42
ユーモアは関係ないだろ!!!
24デフォルトの名無しさん:2013/08/17(土) 18:53:02.07
ユーモアは大切じゃね?
25デフォルトの名無しさん:2013/08/17(土) 18:56:00.13
バーナム効果にひっかかるゴミクズ
26デフォルトの名無しさん:2013/08/17(土) 19:03:07.60
論理力って何?論理性なら知ってるけど(アスペ)
27デフォルトの名無しさん:2013/08/17(土) 19:10:40.11
論理を正しく使う能力のことを言いたいんじゃね?
28デフォルトの名無しさん:2013/08/17(土) 19:20:40.88
アスペルガー症候群=天才
イメージが蔓延

天才のフリをする自称アスペが後を絶たない
29デフォルトの名無しさん:2013/08/17(土) 21:03:28.98
べつにいいんじゃね

天才のフリを見ぬかれるのならバカだし、見ぬかれないのなら天才なんだよ
30デフォルトの名無しさん:2013/08/17(土) 22:16:18.79
31デフォルトの名無しさん:2013/08/18(日) 18:52:12.18
諸君、議論したまえ
32デフォルトの名無しさん:2013/08/22(木) 16:45:46.73
諸君、
33デフォルトの名無しさん:2013/08/22(木) 21:25:07.97
すごいHaskell〜を読み終えたんだが、他に何読むといい?
理論派なんで難しければ難しいほど嬉しい。
34デフォルトの名無しさん:2013/08/22(木) 22:17:54.01
日本語じゃないとダメなの?
35デフォルトの名無しさん:2013/08/22(木) 22:40:43.40
「関数プログラミングの楽しみ」
「関数プログラミング入門 ―Haskellで学ぶ原理と技法―」

前者が難しいと感じたら後者で勉強する方向で。
あるいは自称理論派ならHaskellなんかやめて依存型にでも進めば?和書はAgdaもCoqも一切ないけど。
3633:2013/08/22(木) 23:05:41.15
ありがとうございます。英語は全くわからないので。。。
関数プログラミングの楽しみを読みたいと思います。
37デフォルトの名無しさん:2013/08/22(木) 23:40:15.86
ちょっと補足しておくと
「関数プログラミングの楽しみ」はその道の研究者が出してるおもしろ論文集みたいなもの
関数プログラミングについてもかなり分かっていて研究論文も普通に読みこなせるレベルの人が読むもの

もし関数プログラミングに触れたのはすごH本が初めて、というのなら
「関数プログラミング入門(IFPH)」を読んでも得るものは大きいはず

あとは多少英語苦手でも関数プログラミングを極める上でなんとしても読むべきって感じなのは
Purely Functional Data Structure(PFDS)とPearls of Functional Algorithm Design(PFAD)
検索してみたらPFADはIFPH訳者の山下伸夫さんが翻訳してるらしいのでそれが本になるのを待つのもありかもね
http://partake.in/events/439f62de-94ae-48d2-a4d8-f931fe26a278
38デフォルトの名無しさん:2013/08/24(土) 02:04:28.66
Pearls 〜日本語版読みたい!
39デフォルトの名無しさん:2013/08/25(日) 23:15:24.54
Haskell初心者です
HaskellはIOモナドを用いることで参照透明性を保ったまま入出力を扱える言語だと聞きました
しかしDebug.Traceという関数にはそれ自体に副作用があり参照透明性が守られていないと知りました
http://blog.booklive.jp/?p=225

「Haskellでは絶対に参照透明性が保たれる」は正しくないということでしょうか?
40デフォルトの名無しさん:2013/08/25(日) 23:30:38.15
何事にも例外はある
41デフォルトの名無しさん:2013/08/26(月) 01:00:55.11
別人ですけど、副作用部分って出力だけだから参照透明性が保たれてるように見えるけど
そういう場合も保たれてないってことになるのはなんでです?
副作用がある時点で何が起こるかわからないから?
42デフォルトの名無しさん:2013/08/26(月) 01:10:16.47
trace :: String -> a -> a

この関数は参照透明ではありません。
型情報ではこの関数は純粋関数であると表明されていますが、トレース文字列の出力という副作用を有しています。
> The function is not referentially transparent:
> its type indicates that it is a pure function but it has the side effect of outputting the trace message.
http://www.haskell.org/ghc/docs/7.6-latest/html/libraries/base-4.6.0.1/Debug-Trace.html#v:trace
43デフォルトの名無しさん:2013/08/26(月) 01:31:44.72
>>42
純粋でない操作を行った時点で参照透過じゃないんですね。
まだ頭がついていってないですが、意味の理解はできました。
ありがとうございました。
44デフォルトの名無しさん:2013/08/27(火) 23:52:06.95
種が*->*になるように型[a]をクラスのインスタンスにするには
"instance Functor [] where" などと書けばいいですが
型[(a,a)]をクラスのインスタンスにするにはどうすれば良いでしょうか
気持ちとしては
instance Functor (\a -> [(a,a)]) where
...
なのですが…(Functorはあくまで*->*の一例です)
newtypeやdataは型構成子を書いたり余計な記述が増えるので使いたくありません
45デフォルトの名無しさん:2013/08/28(水) 06:30:01.19
無理
46デフォルトの名無しさん:2013/08/28(水) 06:32:16.64
なんで?
47デフォルトの名無しさん:2013/08/28(水) 09:06:47.91
しらね
48デフォルトの名無しさん:2013/08/28(水) 17:23:13.60
>>40
汚い流石大人汚い
49デフォルトの名無しさん:2013/08/28(水) 19:48:05.68
>>46
型レベルにラムダはないし、それに代わるものもないから
50デフォルトの名無しさん:2013/08/30(金) 17:19:22.06
遅延評価って要はメモリスタックしないって事でいいの?
51デフォルトの名無しさん:2013/08/30(金) 17:56:01.20
メモリスタックってなんだ?
52デフォルトの名無しさん:2013/08/30(金) 19:24:06.88
間違い
スタックオーバーフロー
53デフォルトの名無しさん:2013/08/30(金) 19:43:30.20
違う
遅延評価はそのような利点も持つ場合があるが
定義としては式の簡約の仕方(最外簡約)のこと
54デフォルトの名無しさん:2013/08/30(金) 19:59:00.03
え、「遅延評価」 と 「最外簡約」 は同値?


遅延評価なら最外簡約、最外簡約なら遅延評価ってこと?
55デフォルトの名無しさん:2013/08/30(金) 20:17:12.24
サンク溜まってオーバーフローあるじゃん
56デフォルトの名無しさん:2013/08/30(金) 20:40:56.14
>>55
初めて知った。そんなのあるんか。
サンクサイズってどこで指定するんだ?
57デフォルトの名無しさん:2013/08/30(金) 22:37:22.28
物理的等価性,構造的等価性の違いみたいなもん??
頭こんがらがってきた
58デフォルトの名無しさん:2013/08/30(金) 22:49:37.80
無駄な計算リソースを割かないために
誰かが実際に触れる時までは実行・計算しないという評価方式

スタックオーバーフローは関係ない
末尾再帰でもしてなきゃ普通に起こる
59デフォルトの名無しさん:2013/08/30(金) 22:58:02.12
例えばmap使って(これって末尾再帰じゃないよね?)
リストでゴリゴリ計算してればオーバーフロー起きるの?
60デフォルトの名無しさん:2013/08/30(金) 23:00:35.36
試しに誰か
オーバーフローが起きる
短い関数を書いて欲しい
61デフォルトの名無しさん:2013/08/30(金) 23:05:42.03
foldl
62デフォルトの名無しさん:2013/08/30(金) 23:18:39.06
63デフォルトの名無しさん:2013/08/30(金) 23:44:26.65
>>59
正格な値に畳み込まなければオーバーフローしない
64デフォルトの名無しさん:2013/08/30(金) 23:48:38.23
オーバーフローしないんじゃなくて
そういう計算を避けて通れる場合があるってだけだ
65デフォルトの名無しさん:2013/08/30(金) 23:50:49.02
正格な値に畳み込まなくてもオーバーフローする
66デフォルトの名無しさん:2013/08/30(金) 23:52:00.11
サンク溜まってオーバーフローするのはスタックじゃなくてヒープじゃね?
67デフォルトの名無しさん:2013/08/30(金) 23:53:42.59
マシンスタックのみをスタックと呼ぶ風潮?
68デフォルトの名無しさん:2013/08/31(土) 00:11:19.05
サンク溜まってオーバーフローって具体的にどうすれば起こるの?
サンクってそんなに大幅に増減しないような気がするけど
69デフォルトの名無しさん:2013/08/31(土) 01:43:10.12
誰も気にしてないけどghcのディスク使用量って大き過ぎないか?
約750MBのうち、280MBがプロファイル付きのスタティックライブラリ(foo-x.yy_p.a)で、
180MBが普通のスタティックライブラリ(foo-x.yy.a)ってのはどうなのよ。
70デフォルトの名無しさん:2013/08/31(土) 13:16:18.94
誰も気にしてないから別にいいんじゃね
71デフォルトの名無しさん:2013/08/31(土) 23:54:42.54
ghci みたいにカーソルキーとかで履歴だしたりするインタプリタを実装するにはどうすればいいんだ?
72デフォルトの名無しさん:2013/09/01(日) 00:09:31.86
>>71
readlineの事なら普通に実装してからrlwrapでも噛ませばいい
73デフォルトの名無しさん:2013/09/01(日) 00:10:39.79
ghciが使ってるのはhaskeline
74デフォルトの名無しさん:2013/09/01(日) 01:05:27.00
>>73
GPLの魔の手がこんなところにも・・・
75デフォルトの名無しさん:2013/09/01(日) 01:52:09.14
>>72
>>73
ありがとう
76デフォルトの名無しさん:2013/09/01(日) 22:57:42.36
お前らこんなクソ言語使ってないで
javascriptで便利なプラグインとか作ってくれよ
ほんまつかえねーわ
77デフォルトの名無しさん:2013/09/01(日) 23:19:08.58
君がクソ言語と言って投げ出した言語の方が面白い
78デフォルトの名無しさん:2013/09/01(日) 23:51:34.32
>>77
気持ちはわかるがスルーしてくれ
79デフォルトの名無しさん:2013/09/01(日) 23:54:18.44
>>76
ドカタは黙って底辺で働いてろよ
80デフォルトの名無しさん:2013/09/02(月) 07:14:35.84
パールドカタ最近見ないな
81デフォルトの名無しさん:2013/09/02(月) 09:30:17.10
勉強しててこんなにワクワクする言語は俺の中では無かった
82デフォルトの名無しさん:2013/09/02(月) 13:08:38.20
「パール=ド=型」不純なものを隔離するための型。フランス語を語源とする
83デフォルトの名無しさん:2013/09/02(月) 18:02:14.30
なんか、恥ずかしくなってくるから、正直そういうのやめないか
84デフォルトの名無しさん:2013/09/03(火) 09:39:34.89
2012年 ビッグデータ/Hadoopブーム
ってのがありました

日本のHaskellユーザーはそのブームで作り上げられた人間でしかない
85デフォルトの名無しさん:2013/09/03(火) 11:55:37.37
2007年あたりにブームになった後
最近また見掛けるなったと思ったら
Hadoopなのか?
86デフォルトの名無しさん:2013/09/03(火) 12:39:53.59
洗脳が解かれるのも時間の問題だな
より強い洗脳をしないといけない
そして>>84みたいなやつを消さないといけない
87デフォルトの名無しさん:2013/09/03(火) 12:52:03.58
寒い自演だな
88こいつは凄い:2013/09/03(火) 13:01:30.73
cyokodog/jquery.ex-table-filter
89デフォルトの名無しさん:2013/09/04(水) 16:30:15.80
「すごいhaskellたのしく学ぼう」の2版で入った正誤表ってどこにあるの?
オーム社で電子版買わなかったらアウトやん
90デフォルトの名無しさん:2013/09/04(水) 20:03:00.14
amazon差額3$で電子版サービス日本でもやらないかなぁ
91デフォルトの名無しさん:2013/09/04(水) 20:22:27.57
>>89
2版じゃなくて2刷だろwびびったw
手元にある4刷では修正されていたよ

おかしいと思うところがあるなら、原著のページで確認すればいいよ
http://learnyouahaskell.com/chapters
92デフォルトの名無しさん:2013/09/04(水) 20:39:31.25
第1版第1刷 13.1 アプリカティブファンクターを強化する

ファンクターを導入した動機は、「a -> b 型の関数と、 f a というデータ型があるとして、
どうすれば等の関数を f a から f a への関数に変換できるだろう?」というものでした。

We saw that for this purpose, the Functor type class was introduced
and it had us asking the question: when we have a function of type a
-> b and some data type f a, how do we map that function over the data
type to end up with f b?
93デフォルトの名無しさん:2013/09/04(水) 20:42:14.03
いや、ちょっとまて...
やっぱり正誤表くらい出してほしいよ。
94デフォルトの名無しさん:2013/09/04(水) 20:49:27.05
☓:どうすれば等の関数を f a から f a (←誤入力??)
○:どうすれば当の関数をf a から f b (第4刷)

英語の勉強にもなるし、ものは考えようだよ

オーム社にメールしてみれば対応してくれそうだけど、言わなきゃ絶対に対応してくれないぞ
出版社は少ない人数で業務をまわしているっていうし、ましてHaskell本なんてマイナーだからね
95デフォルトの名無しさん:2013/09/04(水) 20:54:02.24
いや、1刷だと「f a から f a」なんだよ。

正誤表きっちり出すのが出版に携わる者の役目だとばかり思ってたけど
俺年取ったんだなぁ...
96デフォルトの名無しさん:2013/09/04(水) 20:54:20.42
13.4の「うゎぁああああああ落ちるぅぅうううああああ」
って原著をそのまま訳したものだとばかり思っていたけど、邦訳で追加されたんだなw
ふざけすぎだろw
97デフォルトの名無しさん:2013/09/04(水) 20:57:36.90
くうかい?
とかも邦訳にしかなかったな
98デフォルトの名無しさん:2013/09/04(水) 21:17:54.84
10円と100円と1000円の買い物をした時に
払う金額のリストを考えてみました

map(sum)[[x,y,z]|x<-[0,10],y<-[0,100],z<-[0,1000]]

これを任意の組に拡張するには
どういう方法があるでしょうか?
99デフォルトの名無しさん:2013/09/04(水) 22:15:12.63
>>98
こういうこと?
import Control.Monad

f :: [(Int, Int)] -> [Int]
f = map sum . filterM (\_ -> [True, False]) . concatMap (uncurry $ flip replicate)

main = print . f $ [(10,1), (100,1), (1000,1)] -- 10円を1点、100円を1点、1000円を1点
100デフォルトの名無しさん:2013/09/05(木) 08:15:23.84
> 10円と100円と1000円の買い物をした時に
> 払う金額のリストを考えてみました
> map(sum)[[x,y,z]|x<-[0,10],y<-[0,100],z<-[0,1000]]

[0,1000,100,1100,10,1010,110,1110]

7/8の確率で>>98は万引きするってこと?
101デフォルトの名無しさん:2013/09/05(木) 10:59:15.24
A商品10円 B商品100円 C商品1000円として
それぞれ買うか買わないかの選択があるとすると
お金の払い方は
0円 10円 100円 110円 1000円 1010円 1110円ってなるじゃん

これをA商品から任意のn商品まで
値段設定してお金の払い方の合計をリストでばーっと出したい場合
どうしたらいいかなと思って
102デフォルトの名無しさん:2013/09/05(木) 11:42:25.50
import Control.Applicative
import Data.Monoid

items = [10, 100, 1000]
payments = foldr1 (\xs ys -> mappend <$> xs <*> ys) $ (\a -> [Sum a, mempty]) <$> items
103デフォルトの名無しさん:2013/09/05(木) 12:47:16.74
>>102
式をいくつかに分けた方が読み易くないか?
104デフォルトの名無しさん:2013/09/05(木) 12:47:43.00
アプリカティブとかモナドとか出てくるともうわけわからん
数学嫌いが数式みたときと同じ感覚になる
まぁ数学なんだけど
105デフォルトの名無しさん:2013/09/05(木) 12:49:53.58
pays :: [Int] -> [[Int]]
pays [] = []
pays (x:xs) = (map (x:) (pays xs)) ++ (map (0:) (pays xs))
106デフォルトの名無しさん:2013/09/05(木) 12:53:56.32
これでできたリストにsumをmapして重複を除けばいいはず
107デフォルトの名無しさん:2013/09/05(木) 21:21:12.67
α+β+γ+δ=c(定数)
α,β,γ,δ,c∈全ての非負の整数の集合
@α<β<γ<δ
Aα≦β≦γ≦δ

@Aそれぞれのときに、成り立つα,β,γ,δの組を全て挙げるコードを書いたけど
これ何か応用先あるかな?
108デフォルトの名無しさん:2013/09/05(木) 21:23:09.30
Haskellやるからにはちゃんと型やモナドで処理を意味づけしたい
これが僕が女子大生に圏論を教わる理由です。
109デフォルトの名無しさん:2013/09/05(木) 21:34:04.65
>>107
気になるあの娘の暗証番号を聞き出すマジック
110デフォルトの名無しさん:2013/09/05(木) 21:53:01.28
>>109
閃いた!
111デフォルトの名無しさん:2013/09/05(木) 22:01:43.19
なんでマセマティカみたいに文字式のまま方程式解いてくれるライブラリが無いの?
112デフォルトの名無しさん:2013/09/05(木) 22:05:31.25
世界がそれを望んでいないから
113デフォルトの名無しさん:2013/09/05(木) 22:36:07.80
あんなのボランティアで作ろうとするやついないだろ
114デフォルトの名無しさん:2013/09/05(木) 23:29:38.55
世の中には言い出しっぺの法則というものがあってな・・・
つまり >>111 がそういうライブラリを作って公開してすればいいと思うよ
115デフォルトの名無しさん:2013/09/06(金) 01:51:46.04
>>111
Pythonにはあるよ
116デフォルトの名無しさん:2013/09/06(金) 06:59:06.67
じゃあ、HaskellからPythonを呼べばいい
117デフォルトの名無しさん:2013/09/06(金) 07:10:27.86
そのPythonからHaskell呼んでもらおう
118デフォルトの名無しさん:2013/09/06(金) 10:03:44.10
間を取ってPascalにしよう
119デフォルトの名無しさん:2013/09/06(金) 10:35:20.72
Pykel
が良いな
120デフォルトの名無しさん:2013/09/06(金) 12:00:28.38
Scalaでええやん
121デフォルトの名無しさん:2013/09/06(金) 12:02:33.82
それは無いわ−
122デフォルトの名無しさん:2013/09/06(金) 12:06:23.93
Yesodとかの話もここで良いの?
123デフォルトの名無しさん:2013/09/06(金) 12:08:52.58
いいんじゃない。
WebProgにはないだろうし、スレも盛り上がるし。
124デフォルトの名無しさん:2013/09/06(金) 12:38:00.12
関数型言語は学習コストが高すぎる。

玩具として、研究者や学生の自己満足として、
教科書や黒板を賑わすアクセサリーとして、
あるいは頭の体操としての価値は認める。
だが、仕事ではほとんど使い物にならない。

やれば作れる、実際に作った、そんな言い分は聞き飽きた。
主要なソフトウェアのほとんどは非関数型で書かれている。
関数型がプチブームだが、爆発的に採用が増えているとも考えられない。
いずれ関数型のブームは去るだろう。
仮に関数型が生き残ることがあったとしても、
手続的な言語における一部の機能としてだろう。
125デフォルトの名無しさん:2013/09/06(金) 12:41:34.69
なぜ仕事をトッププライオリティーに持ってくるんだろう?
126デフォルトの名無しさん:2013/09/06(金) 12:44:26.52
>>125
プログラムした対価としてお金をいただけるから
127デフォルトの名無しさん:2013/09/06(金) 12:46:10.76
いや、OCamlやLispやScalaは普通に使われてるだろ
それぞれ金融関連とか仮想化アプライアンスとかウェブサービスとか
128デフォルトの名無しさん:2013/09/06(金) 12:48:08.87
稼ぐ手段としてなら使えないと言うより
稼げないと表現した方がいいのでは?
そして世の中にはお金を稼げない事象なんて
腐るほどあるんだから
稼げるのが当たり前って前提が取り除いて評価しないと
アンフェアだよな
129デフォルトの名無しさん:2013/09/06(金) 12:54:05.66
ここはHaskellのスレなので、
関数型言語全般の批判をしたいのであれば、こちらへどうぞ。

【アンチ】関数型言語は使えない【玩具】 2
http://toro.2ch.net/test/read.cgi/tech/1330429547/
130デフォルトの名無しさん:2013/09/06(金) 12:55:57.82
思いついた金儲け及びそのネタ探し、実証の場面において
副作用を殆ど必要としなかった(加えて遅延評価が有効)からHaskell使ってるわ
131デフォルトの名無しさん:2013/09/06(金) 12:59:46.63
俺は神が創ったこの世界の
一部分をのぞき見るのが快感なのさ
それがまだ誰にも発見されてない部分なら尚更 な
132デフォルトの名無しさん:2013/09/06(金) 13:49:50.15
知的好奇心、探究心、発見(苦笑)
どいつもこいつもこんなのばっかりw
133デフォルトの名無しさん:2013/09/06(金) 13:56:30.79
自演乙
134デフォルトの名無しさん:2013/09/06(金) 14:04:31.69
>>132
それが人間と動物を分けるものだからな
135デフォルトの名無しさん:2013/09/06(金) 14:06:12.01
痛たた
136デフォルトの名無しさん:2013/09/06(金) 14:09:43.91
関数型プログラミングが理解できない動物の妬みだね
分からないなら分からないで大人しくすればいいのに
137デフォルトの名無しさん:2013/09/06(金) 14:15:43.86
痛すぎ
Haskeller全般が偏見持たれるから、そういうのはちょっとやめてくれ
138デフォルトの名無しさん:2013/09/06(金) 14:22:51.27
「偏見」って凄く副作用っぽい香りするよな
139デフォルトの名無しさん:2013/09/06(金) 14:29:08.83
知的好奇心、探究心、発見(苦笑)

こんなの腐るほど聞いたわ
聞き飽きたわ

アホ「ん?だから発見とかさ知的好奇心を満たすっていうか覗き見るのが快感なのさ、探究心とかね」
自分「だよなぁ」 心の中(うわでたーーwwこんなやつよくいるわwこういうやつこれで100人目だわw)

Haskellを使う理由を 知的好奇心、探究心、発見(苦笑)等の感情論以外から言ってください
140デフォルトの名無しさん:2013/09/06(金) 14:30:40.26
関数型言語でフリーソフトを作って積極的に成果をアピールとかほとんど聞かないよね
Real World Haskellとか読むとかなり実用的なトピックが揃っているのに
どういうわけか実用的なフリーソフトを関数型言語で作ったという話はほとんど聞かない
141デフォルトの名無しさん:2013/09/06(金) 14:34:24.82
アホ「なぜ実用的であることが重要なのか」

自分「 笑 」
142デフォルトの名無しさん:2013/09/06(金) 14:37:32.65
使うのに理由を求めてるのが面白いな
生きる理由を探してるようなもんだ
死んでないから生きている
ただそれだけの事に理由を探すなんて馬鹿げてるね
もし理由が証明できたとしても
それは命令型では無いって事は分かる
143デフォルトの名無しさん:2013/09/06(金) 14:40:15.30
演繹的な思考に慣れ過ぎてるから
帰納的な思考を想像できないっぽいな
144デフォルトの名無しさん:2013/09/06(金) 14:47:56.33
>>140
関数型言語での実用的なフリーソフトはOCamlのおかげで結構ある。
Haskellは残念ながら同コミュニティ外で使用されるのは少ないね。

Haskellだと上でも上がってるけどYesodは掛け値なしで良いかな。
LL言語のような手軽な環境がついてる上に、ネイティブだから速度良好。
145デフォルトの名無しさん:2013/09/06(金) 14:54:49.27
理系は演繹的に論を進めるイメージがあるけれど
実際には実験データから帰納的に導かれる結論を仮定としてそれを演繹的に証明する
みたいなこともよくする。文系の学部こそ演繹的な推論が求められそうだけど
帰納的に考える必要があるとしたら、例えばどんな場面だろう?
146デフォルトの名無しさん:2013/09/06(金) 15:11:05.99
>>145
直観でなくきちんと経験則に基づく事柄は、みんな帰納的だろう。
それと完全にスレ違いなんで、できれば別のとこでやってほしい。
147デフォルトの名無しさん:2013/09/06(金) 15:22:02.59
お前 〜はやめて欲しいしか言わないね
148デフォルトの名無しさん:2013/09/06(金) 15:22:58.70
結局のところ、関数型言語って主にどこで活躍してるの?
議論のためにしか使われてないイメージなんやけど
149デフォルトの名無しさん:2013/09/06(金) 15:26:52.88
>>148
ドーナッツの穴みたいなもんじゃね?
穴はあるのかないのか
150デフォルトの名無しさん:2013/09/06(金) 15:34:30.18
2chももう潮時かな・・。
151デフォルトの名無しさん:2013/09/06(金) 15:35:23.89
ペアノシステムをプログラムの中で実現してるのを
最初に見た時に感動受けた
まさにドーナツの穴に森羅万象が見えたような気にさせてくれた
152デフォルトの名無しさん:2013/09/06(金) 15:58:28.18
まさにドーナツの穴だな
食えないし値段は付かないし
でもこだわる人はとてもこだわる部分

関数型言語はそういうもの
153デフォルトの名無しさん:2013/09/06(金) 17:46:17.99
好きでHaskellを使っているのだから、正直ほうっておいてほしい
154デフォルトの名無しさん:2013/09/06(金) 19:18:23.72
あと○年でHaskellがメインで使われるようになる!とか妄言吐くやつがいるからなあ
155デフォルトの名無しさん:2013/09/06(金) 19:33:39.62
10年前からメインで使ってますが
156デフォルトの名無しさん:2013/09/06(金) 21:52:45.76
この先もGHCがデファクトスタンダード一人勝ちなの?
157コイヅカ:2013/09/06(金) 21:56:28.34
ちがうなぁ
158デフォルトの名無しさん:2013/09/07(土) 00:01:18.64
f x y = (x + y) * (x + y)

f x y = let t = x + y in t * t
のように書かなくても x + y の部分は1回の計算で済みますか?
また、下のような場合はどうでしょうか
f x = elem x [1..10000] && elem x [1..10000]
また、局所変数の含む場合はどうでしょうか
f x = let xs = [1..10000] in elem x xs
g x = f x && elem x [1..10000]
159デフォルトの名無しさん:2013/09/07(土) 05:24:26.31
おまえらはセンスが良いなぁ。>>151 みたいに関数型の数学性に魅せられたが結局何も見出せなかったみたいな。
>>141←こういう奴はもはや生きている価値すらない亡者。己を無価値とし他人の命令に全てを委ねてるやつ。
160デフォルトの名無しさん:2013/09/07(土) 07:36:08.42
そういったことは各々の世界観に依るのです

それはそうと最近世界観という語を物語の世界の設定情報の総体的意味で使用する人が増えてきました


指摘すれば空気の読めない奴扱いを受けます

この気持ちとどう折り合いをつけたら良いですか?
161デフォルトの名無しさん:2013/09/07(土) 08:10:31.81
自己陶酔のための道具じゃないんだけどなぁ。
162デフォルトの名無しさん:2013/09/07(土) 10:18:09.64
関数型言語は学習コストが高すぎる。

玩具として、研究者や学生の自己満足や話のネタに、
教科書や黒板を賑わすアクセサリーとして、
あるいは頭の体操としての価値は認める。
だが、仕事ではほとんど使い物にならない。

やれば作れる、実際に作った、そんな言い分は聞き飽きた。
主要なソフトウェアのほとんどは非関数型で書かれている。
関数型がプチブームだが、爆発的に採用が増えているとも考えられない。
いずれ関数型のブームは去るだろう。
仮に関数型が生き残ることがあったとしても、
手続的な言語における一部の機能としてだろう。
163デフォルトの名無しさん:2013/09/07(土) 10:48:57.22
>>158
GHCなら、コンパイラの気分次第
常に1回の計算で済むことは期待できない
常に2回計算することも期待できないけど、
-fno-cse -fno-full-lazinessを与えればたぶん2回計算してくれる
164デフォルトの名無しさん:2013/09/07(土) 12:11:17.12
unsafePerformIOを仕込めば評価回数がわかるはず
165デフォルトの名無しさん:2013/09/07(土) 14:21:40.11
関数型がブームだと聞いて
166デフォルトの名無しさん:2013/09/07(土) 15:07:15.72
>>165
聞いたから何だ?
最後までちゃんと話せ

なにか質問があるのか?
議論したいのか?
Haskellについて何か語りたいのか?
167デフォルトの名無しさん:2013/09/07(土) 15:19:10.12
>>166
俺もたった今興味を持ちそうになっただけなんだ。。。
そんなに圧迫面接しないでくれよう。。。
168デフォルトの名無しさん:2013/09/07(土) 15:43:04.31
批判に敏感になり過ぎ
169デフォルトの名無しさん:2013/09/07(土) 15:49:06.08
unsafePerformIOを仕込めば評価回数がわかるはず
170デフォルトの名無しさん:2013/09/07(土) 16:13:11.04
>>167
それは悪いことしたが、それとは別に、途中で切らずに最後まで何か言えよ

Haskellの何が楽しいのか訊いても良いし、
入門者に適したページを紹介してくれ、でも良いから
171デフォルトの名無しさん:2013/09/07(土) 16:35:44.81
初学者ですが、言語拡張は標準になるまで基本的に使わない方がいいんですかね。
たまにコンパイルエラーで「Xhogehogeを使え」とか言われるのですが
安易に使って将来使えなくなったりするのが不安で。
言語拡張といっても、標準になりそうなもの、実装されたばかりのもの、
廃止されるまでの過渡状態のものなど色々だと思いますが、まとまった
リストがあればいいのですが。
172デフォルトの名無しさん:2013/09/07(土) 16:59:39.75
>>171
GHC以外の処理系に対応したいのでなければ躊躇なく使うべき
よほど不人気でない限り、言語拡張が廃止されることはない
(ここ数年で廃止されたのはLinearImplicitParamsとGenericsくらいだと思う)

TypeFamiliesとかTemplateHaskellみたいに人気のある拡張でも
標準に入る見込みがなさそうなのもあるし
173デフォルトの名無しさん:2013/09/07(土) 18:32:11.94
モナド内包表記とかは紆余曲折あったりするけどね
174デフォルトの名無しさん:2013/09/07(土) 18:40:07.14
>>170
い、威圧的だ(唖然
175デフォルトの名無しさん:2013/09/07(土) 20:37:40.57
>>166
研究室新配属の3年生を叩き上げる院生キタ━━(゚∀゚)━━!!!
176デフォルトの名無しさん:2013/09/07(土) 20:42:13.59
>>172
単相性制限は望まれても愛されてもいなかった
177デフォルトの名無しさん:2013/09/07(土) 21:50:22.16
C言語で大きい行列を扱うときにallocしたメモリを使い回すのはよくやられると思うけど、Haskellでそういうことするのは無理かな?
まあ、必ずしも使い回す必要はないんだけど、大きい行列を扱うのは向いてない?
178デフォルトの名無しさん:2013/09/07(土) 22:03:20.90
>>177
大きい行列を扱うのなら、C言語でもHaskellでも他の言語でも、
普通はLAPACKなどの行列専用ライブラリを使うのでは?
HaskellからLAPACKを使うのならhmatrixというライブラリがある。

行列とは意味合いが異なるけど、Haskellで配列を効率よく扱う方法は他にもある。
たとえばrepaというライブラリ。
これは、配列に対するいくつもの演算(2つの配列の要素同士を加算したり、畳み込みをしたり)を、
内部で合成してひとつの一連の計算にして実行する。
つまり、計算用の中間バッファを極力作らないように自動的に処理してくれるから、
こと演算においては「メモリを使い回す」ということをプログラマ側が考えなくても良い。
(repa で2次元配列を行列とみなして、行列同士の積を演算することもできる)
179デフォルトの名無しさん:2013/09/07(土) 22:26:39.79
>>178
レスありがとう

hmatrixは少しだけ見てみたんだけど、大きい行列を繰り返し使う事が効率よくできるかどうか分からなかった
ちゃんと調べてみます

repaってのはよく分からないんだけど、例えば行列の各成分の要素を定義する関数を書いて、その行列に
列ベクトルを掛けると内部では行列そのものは保持しない(結果のベクトルの保存にだけメモリを使う)って
いう動作になるのかな?それならかなり理想的なんだけど
180デフォルトの名無しさん:2013/09/07(土) 22:36:14.34
hmatrixはメモリ領域を使い回したりしないよ
181デフォルトの名無しさん:2013/09/07(土) 22:40:29.40
大きい行列を使い回すのが重要なのは以外だ
素人考えだと、大きい行列ならメモリ確保のオーバーヘッドは相対的に小さくなりそうなんだけど
メモリアクセスの局所性とかに効いてくるのかな
182デフォルトの名無しさん:2013/09/07(土) 23:10:23.69
>>179
> 行列の各成分の要素を定義する関数を書いて

これはできる。
i 行 j 列目の値を表す関数をひとつ書くことになる。
その関数の中で、変数 i と j を使って要素の値を計算する。

> その行列に列ベクトルを掛けると内部では行列そのものは保持しない

まず repa には行列というものはなくて、多次元配列を扱うものだから、
n行1列の2次元配列を定義して、それをプログラマが列ベクトルとみなして扱うことになる。

で、繰り返すが repa は行列を扱うライブラリではないから、
2次元配列を行列とみなした場合、その積の演算はプログラマが定義してやる必要がある。
ghc の最適化オプションを ON にすれば
具体的には、2つの配列を元に1つの配列を作る関数が用意されているから、
その関数に「3つ目の配列の要素を定義する関数」を渡してやる。
その渡した関数の中で行列の積を表現する計算をしてやることになる。

> 結果のベクトルの保存にだけメモリを使う

すまん、正直言ってそこまで最適化されるかは私には確証がない。
ghc の最適化オプションを ON にすれば、理論的にはちゃんと最適化されるはずだが。

ただ、ここまで言っておいてなんだが、repa の扱いは初学者には少々難儀するかも知れん。
配列定義の表現が独特で、各関数の意味も理解するのが難しいと思う。
183デフォルトの名無しさん:2013/09/07(土) 23:12:49.06
>>180
そうなんだが、「必ずしも使い回す必要はないんだけど」ということから、
質問者が知りたいのは、使い回すことではなく、
大きな配列を効率よく扱う方法一般ではないかと思ったので紹介した。
184デフォルトの名無しさん:2013/09/07(土) 23:44:53.22
元の質問に真面目に答えるなら、

>C言語で大きい行列を扱うときにallocしたメモリを使い回すのはよくやられると思うけど、Haskellでそういうことするのは無理かな?
普通はやらないけど(たとえばhmatrixはやらない)、自分で書くならもちろんできる

>まあ、必ずしも使い回す必要はないんだけど、大きい行列を扱うのは向いてない?
そんなことはない
185デフォルトの名無しさん:2013/09/08(日) 00:33:30.46
結局C/C++で創られた有力ライブラリを呼び出すことばかりしかしてないじゃん
他人の褌で相撲してる感じ
地産地消が関の山で他の言語に影響与えられないのかよ
186デフォルトの名無しさん:2013/09/08(日) 01:25:09.92
来たよ底辺プログラマのラッダイトw
187177:2013/09/08(日) 01:36:43.19
詳しい回答ありがとう。

repaはcabalでインストールしようとしたらDLできなかったんで、
まずはhmatrixから使ってみるよ。
188デフォルトの名無しさん:2013/09/08(日) 01:46:47.95
学校の演習でHaskellのArrayの2次元配列でガウスの消去法を実装したけど、100×100程度の行列なら問題なく動くよ
1000×1000はダメ
Celeron 2.7GHz, メモリ1GB, WinXP, ghc 7.0.3
189デフォルトの名無しさん:2013/09/08(日) 05:41:28.15
代数的データ型って何?
そもそも代数的って何?
C言語のstructみたいなデータ型と何が違うの?
190デフォルトの名無しさん:2013/09/08(日) 07:58:29.24
>>185
> 結局C/C++で創られた有力ライブラリを呼び出すことばかりしかしてないじゃん

君は使ったことも調べたことすらないから知らないのだろうけど、
repa は 100% Haskell 製の高速配列ライブラリだよ。

> 地産地消が関の山で他の言語に影響与えられないのかよ

これも君は知らないのだろうけど、
Parsec や QuickCheck などの Haskell 製ライブラリは、
多くの他の言語のライブラリに大きな影響を与えたよ。
191デフォルトの名無しさん:2013/09/08(日) 08:10:26.59
土方にマジレスしたら可哀想だよ
192デフォルトの名無しさん:2013/09/08(日) 09:04:26.18
まともにメンテされてないライブラリが沢山あって
なんだかんだでCのライブラリを呼び出すものが一番安定しているイメージ
193デフォルトの名無しさん:2013/09/08(日) 09:15:54.04
>>189
ここに分かりやすい説明がある。
http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of-algebraic-data-types/

英語のブログだが、口語的ではなく説明口調なんで、変な言い回しはなく、比較的読みやすい。
Part1 から 3 まであるが、1 を読むだけで「代数的」の意味は大体理解できると思う。
194デフォルトの名無しさん:2013/09/08(日) 09:48:08.42
>>193
>>189ではないけど、この記事は親切丁寧かつ読みやすくていいね
紹介ありがと
195デフォルトの名無しさん:2013/09/08(日) 10:49:05.61
>>188
1000×1000で消去法が動かないなら書き方が悪い気がする
196デフォルトの名無しさん:2013/09/08(日) 10:52:03.49
>>193
おお、ありがとう
頑張って読んでみる
197デフォルトの名無しさん:2013/09/08(日) 11:35:21.70
>>193
こんな直球かつ平坦でわかりやすいものを、よく持ってこれるな。
引き出しの多さに感心した。
198デフォルトの名無しさん:2013/09/08(日) 12:15:59.76
>>195
今、Data.Arrayだけで実装してみたけど、100×100でもヤバい
199デフォルトの名無しさん:2013/09/08(日) 16:04:39.53
>>198
どこかに貼ってくれる?
200デフォルトの名無しさん:2013/09/08(日) 16:39:16.46
ピボットが1個進むごとに上三角行列を作り直すから100×100行列が100個生まれる
100万要素の配列だから問題ないと思うが、listArrayがバカなことをやってたら…
201デフォルトの名無しさん:2013/09/08(日) 17:57:11.54
>>200
その100個の行列を一個の配列上に作るのはメモリの無駄遣いだろ
毎回新しく100×100行列を作って使い捨てるべき(それか可変配列にしてメモリ再利用)
202デフォルトの名無しさん:2013/09/08(日) 18:12:59.36
>>186
だれウマwww
203デフォルトの名無しさん:2013/09/10(火) 08:30:32.03
諸君、議論したまえ
204デフォルトの名無しさん:2013/09/10(火) 13:17:40.20
Hackage 2 だそうです
http://beta.hackage.haskell.org/
205デフォルトの名無しさん:2013/09/11(水) 01:06:41.21
産業ハスケル団!
206デフォルトの名無しさん:2013/09/11(水) 08:45:28.31
結局のところ退職エントリで叩かれない給与水準が確保できるかに尽きます。
ちなみにRubyプログラマの私は900万です。(発言小町風)
207言語バカは死ねw:2013/09/11(水) 20:56:05.53
実用的なもの作れゴミ
焼くただずが
言語バカってまじいらねーわ
なんかくだらねえ文法とか言ってるだけwwwつかえねーwwwまじつかえねーわw
そこらへんのクソウェブサービス乱立してるやつほうがまだ使えるわw
さっさとのたれ死ネゴミ
208デフォルトの名無しさん:2013/09/11(水) 21:02:30.34
かわいそう・・・
209デフォルトの名無しさん:2013/09/11(水) 21:07:40.85
知的要求と自己陶酔とモナドクラスタに属したいので使ってるなぁ
自分が何者であるかHaskellをやれば簡単に証明できるからなぁ
ファッションみたいなものかなぁ
210デフォルトの名無しさん:2013/09/11(水) 22:01:16.71
それもまた、かわいそう・・・
211デフォルトの名無しさん:2013/09/11(水) 22:11:15.96
アプリを書き、ライブラリを書き、既存プロジェクトに貢献するなら
自己陶酔でも何でも歓迎
212デフォルトの名無しさん:2013/09/11(水) 22:11:18.46
real world haskell 2nd 日本語版はよ
213デフォルトの名無しさん:2013/09/12(木) 14:00:16.60
ttp://beta.hackage.haskell.org/new-features

- Adjusting package dependencies after a release to match reality
これはいい。
- Package “candidates”.
publish後に間違い見つけたら今と同じ状態になるんじゃね?
214デフォルトの名無しさん:2013/09/12(木) 22:30:52.11
すべてのソフトウェアを無料にして、日本のすべてのプログラマを失業させる
それが私の夢です
215デフォルトの名無しさん:2013/09/12(木) 22:49:08.43
そもそも何処も彼処もソフトウェアのカスタマイズみたいなものが仕事で、
後はハードウェア依存か環境依存で車輪の再発明をしているだけでそ
OSSなんか普及することで、その堅ろう性を保てるわけで
プロプライエタリのホゲなんて今後はビジネスモデル自体が疑われるべき存在でふ
216デフォルトの名無しさん:2013/09/12(木) 22:54:29.09
>>207
そもそも動的言語で書かれたWebサービスって、実際に開発効率良いの?
PHPにしろjsにしろ、デバッグ効率が悪いだけにしか思えないんだけど
217デフォルトの名無しさん:2013/09/12(木) 22:58:23.08
PHPとjsは動的言語の中でもウンコな部類です
218デフォルトの名無しさん:2013/09/12(木) 23:13:26.86
>>216
プレゼン効率が最高に高い
打ち合わせしながらプロトタイプが完成する

製品版の実装?
そんなの知るか
219デフォルトの名無しさん:2013/09/12(木) 23:52:23.26
別にASP.NETでもD&Dで画面設計できるよね?それもC#で
Javaのweb frameworkですらscaffordに相当する機能あるのに

プレゼン効率なんてものも究極的には言語習得の慣れの問題にしか思えないんだけど
言語習得のイニシャルコストを我慢すれば、関数型言語の方が動的言語より
トータルで見たとき開発効率が良さそうってイメージが拭えない
220デフォルトの名無しさん:2013/09/13(金) 00:02:45.23
>>219
JavaとCは向こうが知ってるからその場でごまかせない
221デフォルトの名無しさん:2013/09/13(金) 03:45:37.22
>>220
ごまかしで食い繋ごうとしてるレベルではそうらしいな。
222デフォルトの名無しさん:2013/09/13(金) 04:46:02.31
なんかこのスレにストールマン紛れ込んでない?
223デフォルトの名無しさん:2013/09/13(金) 05:34:16.23
>>219
関数型言語はイニシャルコストが掛かる、の一言じゃ済まない
ベースに数学的な理論を使っているし、関数=数学だから、使いこなせる人もレビューする人も限られる
コスト以前に現実的かどうかの議論が必要なレベル
224デフォルトの名無しさん:2013/09/13(金) 05:36:29.84
>>222
rmsは何処にでもいる
225デフォルトの名無しさん:2013/09/13(金) 06:07:38.51
>>219
中小企業のアプリ開発程度の規模だと、
型の齟齬による誤謬なんて起こらないけどね。
226デフォルトの名無しさん:2013/09/13(金) 09:55:32.26
型のう、うじ...?による、ご...しん?
227デフォルトの名無しさん:2013/09/13(金) 12:46:29.89
>>223
そもそも関数型は開発プロセスについての研究が途中
とても金を出せるレベルじゃない
228デフォルトの名無しさん:2013/09/13(金) 13:14:06.46
RMSはプロプライエタリなソフトを生み出さない世界を創りあげるため
戦う概念として世界をGNUで再構築し偏在することになった
おヒゲの魔法少女である。
229デフォルトの名無しさん:2013/09/13(金) 13:28:29.59
>>223
数学的理論って言っても、せいぜいwikipediaの記事7,8頁分ぐらいも読めば十分で、
PHPでやるような手続き的な記述ぐらい、すぐに出来るようになるんじゃないの?
それをイニシャルコストだって言ってるんだけど
>>226
これを読めると世代とクラスタを高確率で判定できる
>>227
webだと、色々なものがフレームワークで定石化している印象があって、中堅企業ならともかく、
地方に根付いたweb系ベンチャー()やco-worker()なら手出して良いでしょ
>>222,224
あんたらム板の管理でもしてるの?
230デフォルトの名無しさん:2013/09/13(金) 14:44:01.40
>>229
PHPでやるような手続的な記述を関数型言語で記述できるようになる程度の
数学的素養を身につけるために十分なwikipediaの記事7、8頁とやらを教えろください
231デフォルトの名無しさん:2013/09/13(金) 15:20:57.80
232デフォルトの名無しさん:2013/09/13(金) 15:41:06.06
>>229
>数学的理論って言っても、せいぜいwikipediaの記事7,8頁分ぐらいも読めば十分
>これを読めると世代とクラスタを高確率で判定できる
こういう勘違い野郎は淘汰されるべき。
233デフォルトの名無しさん:2013/09/13(金) 15:44:05.07
>>232
それでは何が違うか御教授ねがいます
234デフォルトの名無しさん:2013/09/13(金) 15:46:56.06
>>233
小学校からやり直せば。
235デフォルトの名無しさん:2013/09/13(金) 15:55:06.94
>>233
実務にいらない、と一蹴するなら結構だが、
真面目に学習するという話で、wikipediaで済むわけないだろ。

それと語彙力だけで簡単に人は測れない。ご教授じゃなくてご教示な。
236デフォルトの名無しさん:2013/09/13(金) 16:11:11.30
>>235
少しはググッてから他人の揚げ足とったら?
そもそも道具として使うのであって、
関数型言語の研究するわけでもないんだからwikipediaと参考文献で十分だから
真面目に学習?PHPで書く内容をhaskellに置き換えるだけなのに?
237デフォルトの名無しさん:2013/09/13(金) 16:18:56.88
wikiに載ってる小難しい数式がそのままプログラムで書けるんだから
ある意味簡単じゃね?
238デフォルトの名無しさん:2013/09/13(金) 16:19:22.86
>>236
最初から数学理論なんて必要ない、と一蹴してるなら同意する。
だがwikipediaを読むと提案した時点でそういう事ではないんだろ?
本気で理解する事を考えるなら、
素養のない人間には、簡単な概要しかないwikipediaでは足りないだろ。

それとググるって何をだ?
具体的に頼む。
239デフォルトの名無しさん:2013/09/13(金) 16:32:26.88
>ご教授じゃなくてご教示な。
240デフォルトの名無しさん:2013/09/13(金) 16:49:50.60
>>239
もしかしてそれが、>>238へに対するレスなのか?
ググってみても、ご教授は質問に答える程度の意味では使わんようだが。
まさか講義しろと?
241デフォルトの名無しさん:2013/09/13(金) 16:51:33.56
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1311431093
おまえの講釈なんてイラナイから参照をよこせ
242デフォルトの名無しさん:2013/09/13(金) 16:53:19.99
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1311431093
おまえの講釈なんてイラナイから参照をよこせ
243デフォルトの名無しさん:2013/09/13(金) 17:07:31.09
>>241-242
あの、まさかそれ反論のつもり?
せめてアンカ付けてくれないか?

まさか自分で墓穴ほってると思わないだろ。
さっきから気味が悪いんだが・・。
244デフォルトの名無しさん:2013/09/13(金) 17:19:11.49
>>238
本気で理解するなんて研究開発か研究分野の開拓ぐらいで、
そのレベルで理解する必要があるなら少なくとも関連する論文10稿ぐらい読むだろ
そして、趣味人がPHPの代替にhaskellのコードを書くなんて
レベルの数学理論なんてwikipediaと関連項目で十分だっていってるの


>>243
墓穴を掘っているのはお前。
245デフォルトの名無しさん:2013/09/13(金) 17:36:26.90
なんだ、よかった別人か。

>>244
>趣味人がPHPの代替にhaskellのコードを書くなんて
>レベルの数学理論なんてwikipediaと関連項目で十分だっていってるの
理解している奴にとってはよくまとまってる(事が多い)が、
実際は概要程度しかないから、全く素養がなければ記事単体で理解は無理。

構文覚えさせてソース読ませたほうがまだ早いだろ。
本気で理解の程度の違いについては、見解の相違だろうから何も言わない。

それでググるって何を?
246デフォルトの名無しさん:2013/09/13(金) 17:45:49.21
>>245
あんなの3、4流の工学部を出てりゃ十分な素養だから

>それと語彙力だけで簡単に人は測れない。ご教授じゃなくてご教示な。
ご教授じゃなくてご教示だと揚げ足を取ったので、
それが正しい日本だと考えた根拠をググッて参照を明確にした上で煽れ
247デフォルトの名無しさん:2013/09/13(金) 17:56:03.61
>>246
>あんなの3、4流の工学部を出てりゃ十分な素養だから
なら理系出身で無いなら、素養ないって事になるだろ・・。
自分で限定してどうすんだ。

結局、同一人物なの?
どう見ても自分でURL出して墓穴掘ってるのに、
煽り方がどうとか、論点ずらしのつもりなの?
さっきから変な事言い出すし、気味が悪いんだよ。
248デフォルトの名無しさん:2013/09/13(金) 17:58:56.12
本物のプログラマはHaskellを使うって本当ですか?
249デフォルトの名無しさん:2013/09/13(金) 18:01:32.17
>>248
このスレをよく見て判断されるとよろしいんではないでしょうか
250デフォルトの名無しさん:2013/09/13(金) 18:04:40.58
>>247
>なら理系出身で無いなら、素養ないって事になるだろ・・。
本質的に素養のない人間は自分で何も調べることが出来ず、多分、
君にはそういった素養がないし、haskellなんて使わない方が良いよ。
>どう見ても自分でURL出して墓穴掘ってるのに、
URLを出したことが、どのような墓穴になるのか具体的な根拠は?

>結局、同一人物なの?
便所の落書きに個人なんてものは存在しない。全てが共有されて局所最適解へ向かう。
251デフォルトの名無しさん:2013/09/13(金) 18:11:00.28
無職ニートは何でRuby、Haskellを勉強してるんですか?
252デフォルトの名無しさん:2013/09/13(金) 18:18:16.90
>>250
ごめん、もういいや。
ありがとな。時間取らせて悪かった。
253デフォルトの名無しさん:2013/09/13(金) 18:22:46.95
>>251
技術幅が狭く、意図的に責任の重い仕事を避けれるから
254デフォルトの名無しさん:2013/09/13(金) 18:43:08.72
>>253
ニヤッとしてしまったw
255デフォルトの名無しさん:2013/09/13(金) 18:56:20.36
「wikipedia見てHaskellのプログラミングできるようになる」は、「ブリタニカ辞典読めば法隆寺を建てられる」と同意
256デフォルトの名無しさん:2013/09/13(金) 19:04:20.85
法隆寺は無理でも犬小屋のようなものぐらい作れるだろ
関数型の概要だけサラッと学ぶのが不十分なら、
本家のtutorialでも順番に読みつつ手でも動かせば?
257デフォルトの名無しさん:2013/09/13(金) 19:09:40.21
PrologのWikipediaくらいだと、金堂くらいは建つかな。
258デフォルトの名無しさん:2013/09/13(金) 19:17:30.38
論理プログラミングの定石学ぶなら「〜の技芸」とか読んだ方が良いんじゃない?
259デフォルトの名無しさん:2013/09/13(金) 19:32:43.27
どこらへんで数学嫌いになったか語ろうぜ
おれ三角関数
260デフォルトの名無しさん:2013/09/13(金) 19:33:19.73
確率論だな
261デフォルトの名無しさん:2013/09/13(金) 19:35:40.47
割り算(小声)
262デフォルトの名無しさん:2013/09/13(金) 19:40:17.57
>>258
「Prologの技芸」 いいですね。論理学的な背景の説明も厚いし。
263デフォルトの名無しさん:2013/09/13(金) 19:43:18.48
ゲームプログラマを目指す高校生がアフィン変換や
クォータニオンぐらい卒業前に独習してるって気付いたとき
264デフォルトの名無しさん:2013/09/13(金) 19:44:10.60
ゲームプログラマを目指す高校生がアフィン変換や
クォータニオンぐらい卒業前に独習してるって気付いたとき
265デフォルトの名無しさん:2013/09/13(金) 19:45:55.03
アフィン写像ってあたりまえだけど
affine mapなんだな
266デフォルトの名無しさん:2013/09/13(金) 19:53:02.97
>>216
Haskellよりは開発効率は高いよ
トラブルシューティングからパフォーマンスチューニングまで
あらゆるノウハウが蓄積されているから「開発効率」は高い

Haskellだとトラブル解決に時間食いまくるだろうね
267デフォルトの名無しさん:2013/09/13(金) 19:59:25.94
>>266
トラブルの解決には同意するけれども、
コンパイルされるだろうhaskellのパフォーマンスが動的言語より悪いとな?
268デフォルトの名無しさん:2013/09/13(金) 20:00:34.09
>>266
トラブルの解決には同意するけれども、
コンパイルされるだろうhaskellのパフォーマンスが動的言語より悪いとな?
269デフォルトの名無しさん:2013/09/13(金) 20:03:10.42
数学の重要性を語り始める、アルゴリズムで数学ができるできないじゃ違う!などと語る(自分が数学ができなさすぎて戒めてる
270デフォルトの名無しさん:2013/09/13(金) 20:10:16.45
数学について語り始め 数学は大事と戒め始める
論理的な思考に憧れを抱く 女は論理的な思考ができないとバカにし始める 獣と人間の話をし始める
理系に属したがる(注:文系出身で理系職ついてるやつつは文系を利用してギャップ狙いをし文系なのにすげー!!!といわれようとする
スーパープログラマになりたいとわめきだす
無職ニート
RubyとHaskellを学んでいる
難しいことをやりたがる
それって誰でもできるんでしょ?と誰でもできることをバカにする
無職ニートをやり続けこのままでは経歴が作れないのであせりだしネットでウンコプロジェクトを開いて経歴にしようとする
271デフォルトの名無しさん:2013/09/13(金) 21:01:06.90
よし。無職ニートしか当てはまらないからセーフだ
272デフォルトの名無しさん:2013/09/13(金) 21:02:07.61
よし。無職ニートしか当てはまらないからセーフだ
273デフォルトの名無しさん:2013/09/14(土) 00:54:47.58
Leksahを使ってみようと思うのですが、ビルドしたら

>Installing executable(s) in C:\Users\honoka\AppData\Roaming\cabal\bin

で止まってしまって、実行(C+R)しても

>No errors that can be auto resolved

っていうのが返って来てしまいます
何がいけないんですかね…
274デフォルトの名無しさん:2013/09/14(土) 00:59:17.37
もうcabalは嫌だ
275デフォルトの名無しさん:2013/09/14(土) 06:56:41.24
キャバルにキャバルものを頂戴
276デフォルトの名無しさん:2013/09/14(土) 16:51:01.44
さっき最新版をインストールした
だんだんプラットホームのサイズが大きくなってるのが、smalltalkの悪夢の再現のようで怖い
277デフォルトの名無しさん:2013/09/14(土) 21:35:10.40
2ちゃん●の新システムはHaskellを使ってるらしい
278デフォルトの名無しさん:2013/09/14(土) 21:42:25.09
不具合起きたらまたPerl忍者に餌与えることになるな
279デフォルトの名無しさん:2013/09/14(土) 22:25:16.47
perl忍者はjavascriptスレにいるよ

+ JavaScript の質問用スレッド vol.108 +
http://toro.2ch.net/test/read.cgi/hp/1378462421/

ID:J1i2JugH
280デフォルトの名無しさん:2013/09/15(日) 13:34:10.75
windows に cabal で yesod インストールしたけど、やたらたくさんモジュール使ってるのね
281デフォルトの名無しさん:2013/09/15(日) 19:59:16.86
>>280
まあnodeのexpressとかも同じですし
282デフォルトの名無しさん:2013/09/17(火) 22:26:17.81
関西でhaskellの勉強会やってないかな
283デフォルトの名無しさん:2013/09/17(火) 22:41:39.89
加古川でやってたと思う
284デフォルトの名無しさん:2013/09/18(水) 14:41:08.65
九州でhaskellのべんky(ry
285デフォルトの名無しさん:2013/09/18(水) 19:07:12.63
うどん県でhaskellの(ry
286デフォルトの名無しさん:2013/09/18(水) 21:14:47.85
いんたーねっとでみんなでべんきょうかい
287デフォルトの名無しさん:2013/09/18(水) 21:34:48.59
自分で勉強会を開く気はないのか?
288デフォルトの名無しさん:2013/09/18(水) 21:57:43.04
それでは諸君、議論したまえ
289デフォルトの名無しさん:2013/09/18(水) 22:14:28.35
ゲームを作ってみようと思い、とりあえず60fpsで
小さなボールが画面中を跳ねまわるデモを作ったんだが、
設計のことでちょっと訊きたい。

ボールの位置と速度のデータを代数データ型にまとめて、
その値を毎フレーム更新してるんだが、
参照透過性が保たれるから当然次々に使用メモリが増えていくと思う。
(更新前のデータは更新後には一切使わないから無駄なんだが)

今はただのデモで1個のボールが飛んでるだけだからいいけど、
実際にゲームを作るとなると、毎フレームかなりの量のデータが更新され、
その都度使用メモリが急激に増えていくのではないかと思う。

Haskell によるゲーム作りってこういうものなの?

それとも、フレーム毎に更新するデータは全て IORef で持つのが普通なの?
290デフォルトの名無しさん:2013/09/18(水) 22:36:45.08
モナディウスなんかのコードでも眺めたら?
291デフォルトの名無しさん:2013/09/18(水) 22:43:42.70
FRP使ってるゲームプログラムでBan Patternで細かく正格指定してるのも
メモリ消費問題を抑え込むためなのかな?
さらには diamond 参照問題とかもあるらしいじゃないですかー
理解がおいつかないおっおっおっ
292デフォルトの名無しさん:2013/09/18(水) 23:21:04.04
モナディウスはそれでメモリリークに苦しんでたけどな
293デフォルトの名無しさん:2013/09/19(木) 10:33:11.90
ゲームやOSを高級言語だけで記述しようとすると
理想と現実の狭間に陥って...アーメーマー
294デフォルトの名無しさん:2013/09/19(木) 10:39:04.12
Haskellが効率に苦しんでいるのは
手続き型でできることを抽象化できてないってことなのか
それとも遅延評価デフォだと書きづらいというだけなのか
295デフォルトの名無しさん:2013/09/19(木) 11:15:18.79
知見が蓄積されてないだけじゃね?
296デフォルトの名無しさん:2013/09/19(木) 11:42:48.07
オワコンだしなHaskell
297デフォルトの名無しさん:2013/09/19(木) 11:44:23.70
ウェブはバカと暇人のもの
Haskellはバカと暇人のもの
298デフォルトの名無しさん:2013/09/19(木) 12:49:40.72
>>297
あまり面白くない

もうちょっと捻ってくれんか
299デフォルトの名無しさん:2013/09/19(木) 14:24:28.08
まあオワコンなのは事実だろ
300デフォルトの名無しさん:2013/09/19(木) 14:29:11.37
オワコンwのスレに態々書込にくる、残念な人達。
301デフォルトの名無しさん:2013/09/19(木) 14:30:27.04
た…態々
302デフォルトの名無しさん:2013/09/19(木) 15:11:42.79
>>293
quakeつくったプログラマも関数型に興味持ってたよ
303デフォルトの名無しさん:2013/09/19(木) 15:12:34.28
オワコン
304Haskellはオワコン:2013/09/19(木) 15:15:33.96
関数型言語は学習コストが高すぎる。

玩具として、研究者や学生の自己満足として、
教科書や黒板を賑わすアクセサリーとして、
あるいは頭の体操としての価値は認める。
だが、仕事ではほとんど使い物にならない。

やれば作れる、実際に作った、そんな言い分は聞き飽きた。
主要なソフトウェアのほとんどは非関数型で書かれている。
関数型がプチブームだが、爆発的に採用が増えているとも考えられない。
いずれ関数型のブームは去るだろう。
仮に関数型が生き残ることがあったとしても、
手続的な言語における一部の機能としてだろう。
305デフォルトの名無しさん:2013/09/19(木) 15:19:52.73
>>302
ジョン・カーマックか
ググったらHaskellについて話してるらしい公演が見つかったけど
スライドもなくただぶっ続けで話してるだけだからリスニングきついw
306デフォルトの名無しさん:2013/09/19(木) 15:23:20.50
Haskellブームはとっくに去ったけどな。
今熱いのはOCamlだよ。
307デフォルトの名無しさん:2013/09/19(木) 15:24:02.77
>>302 カーマックはこないだのQuake Conより前から
「関数こそプログラムの本質だ」と言ってたと思うけど出展を思い出せない
308デフォルトの名無しさん:2013/09/19(木) 15:25:29.45
>>305
カーマックは巻きが入ってもガン無視で話しつづけるから進行泣かせなんよね
309デフォルトの名無しさん:2013/09/19(木) 17:59:27.24
>>304
ほとんどの大卒はscheme/prologを学んでるから、haskellの学習コストなんて言うほど高くない
はっきり言えば、動的言語がオワコン。
310デフォルトの名無しさん:2013/09/19(木) 18:59:06.48
普及率で優劣を騙るやつに聞きたいんだけど、その理屈だと2chに書き込んでる自身が、世間ではオワコンでFAだよね?
311デフォルトの名無しさん:2013/09/19(木) 19:05:33.24
312デフォルトの名無しさん:2013/09/19(木) 20:45:44.62
オワコンHaskell
313デフォルトの名無しさん:2013/09/19(木) 20:54:55.22
OCamlってなに?perlスレでもみたけど
オワコンなんだろ?Haskellはオワコン
314デフォルトの名無しさん:2013/09/19(木) 20:56:18.89
いや〜Haskellオワコンって書かれると必死に影響力を下げまいと
信者がオワコンじゃないよ、みたいに喚くのが自薦の用心棒ってやつだね
オワコンなんだろ?
こんなにオワコンって書かれてる
オワコンだろう
オワコンHaskellはオワコン
315デフォルトの名無しさん:2013/09/19(木) 21:12:04.55
オワコンっていうけど、始まってもいないだろ…
316デフォルトの名無しさん:2013/09/19(木) 21:44:05.26
ハスケルは蛹のまま動かなくなってしまいました
人々は落胆しその場を立ち去りました

季節は巡り、ある暑い日のことです
人々がハスケルを見捨てたのも忘れていたその場所を通りかかった所でした

そこには妖しくこの世の常のものとも思えぬ冬虫夏草が生えていました
317デフォルトの名無しさん:2013/09/19(木) 21:51:22.91
これは何かの引用?
318デフォルトの名無しさん:2013/09/19(木) 22:14:16.10
オワコスキー
319デフォルトの名無しさん:2013/09/19(木) 22:47:59.91
糞言語Haskell
使う価値生し
320デフォルトの名無しさん:2013/09/19(木) 23:15:33.28
>>317
俺の即興だけど、それを知ってなんになるの?
321デフォルトの名無しさん:2013/09/19(木) 23:50:59.57
糞過疎Haskell
オワコン
322デフォルトの名無しさん:2013/09/20(金) 00:11:23.40
ハスケルに足りないものは何か?
323デフォルトの名無しさん:2013/09/20(金) 00:15:23.68
人気
324デフォルトの名無しさん:2013/09/20(金) 00:19:48.26
C++より実行速度が遅いから実際のプロジェクトで使う気にならない
325デフォルトの名無しさん:2013/09/20(金) 00:26:25.68
>>315
だよなwwww
ってか始まってほしい理由も無いが
クイズ番組に数学が出ない
書籍に数式が1行でもでると売上が3割落ちる

世間の数学アレルギーは相当なもんよ
hasukellがブームになるとか金輪際ナイナイって
326デフォルトの名無しさん:2013/09/20(金) 00:55:18.05
合成写像って高階関数の事?
327デフォルトの名無しさん:2013/09/20(金) 01:11:59.44
ネストされた微積ぐらい習っただろリア厨
328デフォルトの名無しさん:2013/09/20(金) 01:18:46.93
>>306
そもそも、随分と昔から実用的なライブラリやソフトウェアがocamlで書かれてる
ocamlのバックボーンってINRIAとかいう研究所だけどhaskellは今ひとつ不明
専門卒や業務系ってSATやCSPなんかの理論とは縁遠いんだろうな
329デフォルトの名無しさん:2013/09/20(金) 02:02:35.23
>>325
こんだけ世間が狭い人が、何故わざわざスレに来るのかは人類の謎だな。
>クイズ番組
>書籍
>hasukell
>ブーム
330デフォルトの名無しさん:2013/09/20(金) 02:34:46.41
ム板と関係ない別クラスタの人種
331デフォルトの名無しさん:2013/09/20(金) 06:47:40.58
クラスタとか言うとそれはそれでお里が知れる
332デフォルトの名無しさん:2013/09/20(金) 08:44:14.28
市場は衰退の一途なので「明日から実務に使える技術 - XX言語」というジャンルがもうアレゲ
今求められているのは、「テロに使える言語 ハッスルKill - 愛をとりもどせ」みたいなのじゃないかな
333デフォルトの名無しさん:2013/09/20(金) 08:50:59.52
-XUsefulTechnology エクステンションはよ
334デフォルトの名無しさん:2013/09/20(金) 09:51:07.43
Haskellはオワコン
335デフォルトの名無しさん:2013/09/20(金) 09:58:06.40
はいオワコンです
336デフォルトの名無しさん:2013/09/20(金) 12:39:12.45
スレまだ半分も行ってないのに、なんでもう埋め始めてるの?
337デフォルトの名無しさん:2013/09/20(金) 12:40:42.54
>>331
そこで、金融計算に強い関数型の出番ですね
貧困層が下克上を狙うには、この上ない市場
338デフォルトの名無しさん:2013/09/20(金) 14:23:18.32
オワオワオワコーーーンッツ!!トンガリオワコーンッ!!
Haskellはオワコン!!!
339デフォルトの名無しさん:2013/09/20(金) 15:04:18.45
data TES t s = Tes (t -> s)から
rev :: (TES t s) -> (TES s t) の型になる関数をどう定義していいかわからないです。
どなたかご教授願えませんか?
340デフォルトの名無しさん:2013/09/20(金) 17:02:15.28
>>339
その型になるどういう関数を定義したいの?
書き間違いじゃなければ、その型にまともな定義は与えられない
(無限ループか、例外を投げるしかない)ように見えるけど
341デフォルトの名無しさん:2013/09/20(金) 17:03:42.82
逆関数的な何か?
342デフォルトの名無しさん:2013/09/20(金) 17:17:25.21
逆関数だから無理だよなあ
343339:2013/09/20(金) 17:27:17.19
皆さん返信ありがとうございます
ご指摘の通り逆関数を定義したいのですが無理なのですか・・・
>>340
定義したい関数としては Tes(t->s) を受け取って Tes(s->t)を返したいのです。
このtとsのマッチのさせ方(もしかしてひどい勘違いをしていてできないのかもしれませんが)がわからない状態です。
344デフォルトの名無しさん:2013/09/20(金) 17:34:49.27
>>343
Tes(t->s)というのはHaskellの表記として正しくないし、意図も伝わらない
(t->s)は型レベル、Tesは値レベルのもの

任意の関数の逆関数を計算するのは無理
(tが有限で、sが比較可能で、可逆な関数以外渡さない、みたいな前提を置けばできる)
345339:2013/09/20(金) 17:48:37.05
>>344
アドバイスありがとうございます!
なんとかtとsの型だけが取得できればいいんですが・・・
例えば引数としてTes(t->s)を考えた時に
f (Tes x) = のように書いて x に t->s をマッチさせたあとにtとsの型を取得することは可能なのでしょうか?
質問だらけで申し訳ありません。当方はOCamlならある程度理解できているレベルです。
もしなにか知見がございましたらよろしくお願いします
346デフォルトの名無しさん:2013/09/20(金) 17:52:22.39
>>345
「型を取得」ってどいう意味?型の文字列表現が欲しいとか?
これを使って何をやりたいかを書くとアドバイスしやすいと思う
347デフォルトの名無しさん:2013/09/20(金) 17:55:13.64
やりたいことをOCamlで書いてくれたら分かるかも
348339:2013/09/20(金) 18:14:49.39
>>346
表現がいろいろ足らなくて申し訳ありません。
ようやく思い違いに気づきました。
Tes(t->s)と書いた時のt->sは抽象化された型tから型sへの写像ではなく
具体的にt->sと定義された関数のことだったんですね・・・
マッチができないのも納得できました。

>>347
OCamlだと型が関数のように引数を受け取れないので少し表現するのが難しい感じです・・・
具体的には(勘違いだったんですが)
f (Tes x) =
let (t->s) = x in
Tes(s->t)
みたいに表現できるのかな?と思っていました。

皆様返信ありがとうございました。もう少し実装する関数を見なおしてみます。
349デフォルトの名無しさん:2013/09/20(金) 18:17:20.25
こういうことではないだろうなと思いつつ・・

import Data.Typeable
getTesType (Tes t) = snd . splitTyConApp . typeOf $ t

-- > getTesType (Tes (+))
-- [Integer,Integer -> Integer]
350デフォルトの名無しさん:2013/09/20(金) 18:19:39.75
おおう入れ違ってしまった
スルーしてくれ
351デフォルトの名無しさん:2013/09/20(金) 18:21:56.23
たらい回し関数?
352デフォルトの名無しさん:2013/09/20(金) 18:33:04.60
全単写じゃないとダメだから
多相ヴァリアント型でも型推論してくれないな
353デフォルトの名無しさん:2013/09/20(金) 18:34:56.58
>>348
>OCamlだと型が関数のように引数を受け取れない
いったい何を言っているんだ

OCaml version 4.00.1

# type ('s, 't) tes = Tes of ('s -> 't);;
type ('s, 't) tes = Tes of ('s -> 't)
354339:2013/09/20(金) 18:35:12.88
>>350
ありがとうございます。
型は取得できるのはわかったのですがやはり関数とのマッチは無理なようでした。
お書き頂いたTypeRepを取得する関数も参考になりました。
355339:2013/09/20(金) 18:45:20.81
>>353
あ 申し訳ないです。言葉が足りませんでした。
コンストラクタを関数のように扱えないということを伝えたかったのです。
最初はお書きいただいたものと同様のものでOCamlで書いていたのですが
他の部分で弊害が出たのでHaskellで実装しなおしてるところでした。
356デフォルトの名無しさん:2013/09/20(金) 18:51:13.52
>>355
Haskellでもデータ構築子を関数扱いは無理だよ
だからモジュールではわざわざコンストラクタ扱いの関数に落とすわけで
357デフォルトの名無しさん:2013/09/20(金) 18:52:50.17
間違い
この場合型構築子だ
358デフォルトの名無しさん:2013/09/20(金) 18:59:35.38
OCamlはデータ構築子を関数扱いできない点でHaskellと違うけど、
>>339はそれ以前に代数的データ型を理解してない気がする
359デフォルトの名無しさん:2013/09/20(金) 21:49:57.97
海外じゃオワコンのHaskell
360デフォルトの名無しさん:2013/09/20(金) 21:59:23.50
なんでリストの変数を xs って書くの?
何の意味?
361デフォルトの名無しさん:2013/09/20(金) 22:01:47.91
変数xの複数形でxsのリストになるから
prologだと、[X|Xs]って表記された影響でも受けたんでない?
362デフォルトの名無しさん:2013/09/20(金) 22:18:29.96
あぁ・・・複数形のsなんだ
ありがトン
363デフォルトの名無しさん:2013/09/20(金) 22:25:06.88
リストのリストだとxxs, yysなどと書く
364デフォルトの名無しさん:2013/09/20(金) 22:39:53.75
>>363
そうだったのか。
おれ自分のコードで xss、yss って書いてた。

危うく外に出して恥をかくところだったよ、ありがと。
365デフォルトの名無しさん:2013/09/20(金) 22:46:40.17
リストって例えば
1:2:3:[ ]  → [ 1,2,3 ]
こういう事じゃん

リストのリストって
[ 1,2,3 ]  : [4,5,6] : [ ]  → [ [ 1,2,3 ] ,[ 4,5,6 ] ]
こういう事じゃん

じゃあリストのリストを元に戻したら どうやって書くの?
366デフォルトの名無しさん:2013/09/20(金) 22:54:22.97
よく見るのは xss な気がする
367デフォルトの名無しさん:2013/09/20(金) 23:00:42.15
ネットだとxss/yss派のが多いみたい
yys/xxsは xxs = (x:xs) という意味で使ってる人が多いようだ
368363:2013/09/20(金) 23:14:38.75
ごめん普通はxss, yssだったわ。書くときは間違えないのに変な勘違いしてたな
369デフォルトの名無しさん:2013/09/20(金) 23:31:51.94
>>365
よく分からんがこういうこと?

ghci> (1:2:3:[]):(4:5:6:[]):[]
[[1,2,3],[4,5,6]]
370デフォルトの名無しさん:2013/09/20(金) 23:34:40.04
>>365
「元に戻す」の意味が分からん。

リストのリストを元に戻すのは分からんが、単なるリストを元に戻すのは分かるのか?
だったら、その例を書いてみてくれ。
そうすれば、あぁそういう意味かと理解し、じゃあリストのリストの場合はこうだ、と
アドバイスできるかも知れん。
371デフォルトの名無しさん:2013/09/20(金) 23:36:00.29
一般的にネストの入れ子とりって言うよ。SICPでも嫁
372デフォルトの名無しさん:2013/09/20(金) 23:44:56.73
いきなりSICPとか敷居高すぎますやん・・・
[1,2,3]:[4,5,6]:[]の前が知りたいだけですやん・・・
373デフォルトの名無しさん:2013/09/20(金) 23:47:49.42
だから、[1,2,3]:[4,5,6]:[]の前って何やねん
374デフォルトの名無しさん:2013/09/20(金) 23:52:30.91
>>369
これの()無しバージョンでお願い
375デフォルトの名無しさん:2013/09/20(金) 23:56:22.16
>>374
なんで括弧無しバージョンを求める?

(1 + 2) * (3 + 4) ≠ 1 + 2 * 3 *4 みたいに、
括弧なくしたら演算の意味が変わると思うが
376デフォルトの名無しさん:2013/09/20(金) 23:58:52.39
処理系もネストの入れ子とりって奴で
糖衣構文のリストのリストを
()付けて戻していくん?
377デフォルトの名無しさん:2013/09/21(土) 00:13:30.45
>>375
もう構うなよ
378デフォルトの名無しさん:2013/09/21(土) 00:15:10.32
(1:2:3:[]):(4:5:6:[]):[]

これ、糖衣構文なの?

(1:2:3:[]) と (4:5:6:[]) と [] の3つの項を演算子 : で演算してる普通の式じゃないの?
379デフォルトの名無しさん:2013/09/21(土) 00:17:07.20
だから構うなってば
380デフォルトの名無しさん:2013/09/21(土) 00:17:41.94
あ、ごめん自己解決
1:2:3:[] 自体も1:(2:(3:[]))の糖衣構文だから
(1:(2:(3:[]))):((4:(5:(6:[]))):[])
これがリストのリストやな
381デフォルトの名無しさん:2013/09/21(土) 00:17:45.88
初心者に対しては全力でサポートしてやろうぜ
382デフォルトの名無しさん:2013/09/21(土) 00:20:08.97
SICPポチろうかと諦めかけてたけど
型システム入門に載ってたわ(;´∀`)
383デフォルトの名無しさん:2013/09/21(土) 00:20:19.52
>>380
お前の中では 1 + 2 + 3 も (1 + 2) + 3 の糖衣構文なのか?
384デフォルトの名無しさん:2013/09/21(土) 00:24:34.84
糖衣構文ってのはプログラム用語じゃないのか?
385デフォルトの名無しさん:2013/09/21(土) 00:27:05.58
中置演算子の優先順位的にも構文糖でも何でもないだろ
意味も知らずに使うなよ
386デフォルトの名無しさん:2013/09/21(土) 00:29:22.03
じゃあきちんとした意味を教えてたもれ
387デフォルトの名無しさん:2013/09/21(土) 00:43:32.59
読み書きしやすくするために定義された構文
Haskellでは中置記法でさえ糖衣構文である
388デフォルトの名無しさん:2013/09/21(土) 00:48:31.50
中置記法は立派な構文糖
構文の配置変わってるし
389デフォルトの名無しさん:2013/09/21(土) 00:53:29.49
海外でオワコンだからしょうがねえわな
Haskellは
390デフォルトの名無しさん:2013/09/21(土) 01:02:07.71
(:) ((:) 1 ((:) 2 ((:) 3 []))) ((:) ((:) 4 ((:) 5 ((:) 6 []))) [])
前置で書いたらこうか
キチンと書いたら疑問も解けたわ
391デフォルトの名無しさん:2013/09/21(土) 01:06:45.01
あ、でも アレか
キチンと書いたら1〜6の数字も
[]だけで表記できるんだよな 
392デフォルトの名無しさん:2013/09/21(土) 01:19:24.17
>>372
何か不義理でもしたのか?
393デフォルトの名無しさん:2013/09/21(土) 01:20:20.58
何の疑問だよ
一人遊びしてるようにしか見えないんだが
394デフォルトの名無しさん:2013/09/21(土) 01:25:45.86
いいじゃん
Haskellなんて趣味の言語だろ
オナニーぐらいさせろって
395デフォルトの名無しさん:2013/09/21(土) 01:27:54.62
やっぱり荒らしか
396デフォルトの名無しさん:2013/09/21(土) 01:32:10.73
あ、なるほど
どんどん分解していったら
car cdr cons atom eqの5つだけになるんやな
謎がどんどん解けて面白いわ
397デフォルトの名無しさん:2013/09/21(土) 01:42:50.26
haskellってlisp互換なの?
398デフォルトの名無しさん:2013/09/21(土) 01:44:19.60
ブログでどうぞ
399デフォルトの名無しさん:2013/09/21(土) 10:06:08.63
オワコンHaskellスレで暴れられてもな
400デフォルトの名無しさん:2013/09/21(土) 12:21:20.53
植民地人を便利に使役するためには宗主国の言語が理解できなくては困る。
けれども、宗主国民を知的に凌駕する人間が出てきてはもっと困る。
「文法を教えない。古典を読ませない」というのが、その要請が導く実践的結論である。
教えるのは、「会話」だけ、トピックは「現代の世俗のできごと」だけ。
それが「植民地からの収奪を最大化するための言語教育戦略」の基本である。
401デフォルトの名無しさん:2013/09/21(土) 12:54:44.28
副作用使用罪でタイーホだ
402デフォルトの名無しさん:2013/09/21(土) 13:09:44.63
海外じゃオワコンHaskell
403デフォルトの名無しさん:2013/09/21(土) 13:13:15.41
逮捕の上、モナド境界線の向こう側へ追放処分とする
404デフォルトの名無しさん:2013/09/21(土) 13:16:14.19
海外じゃ既にオワコンのHaskell
島国日本で大人気!!
405デフォルトの名無しさん:2013/09/21(土) 14:27:10.26
NHKスペシャルで今日、明日と
神の数式やるけど
このスレ見る奴多そうだな
この世のすべてを数式で表したい
406デフォルトの名無しさん:2013/09/21(土) 15:23:29.16
型情報探したり、副作用無しの恩恵ないんだろうけど
やっぱ、ocamlの方が使いやすいのかな?
大体のキラーコンテンツがパーサーや証明定理なんだしocamlに軍配あがるか
haskellのocamlに対するアドバンテージって何だろう?
407デフォルトの名無しさん:2013/09/21(土) 15:35:17.70
リスト内包表記
408デフォルトの名無しさん:2013/09/21(土) 15:38:48.70
シンプルな文法
409デフォルトの名無しさん:2013/09/21(土) 15:38:59.47
無限リストが簡単に作れる
410デフォルトの名無しさん:2013/09/21(土) 15:46:44.21
>>409
表現なら出来るが
作るには無限なメモリが必要です
411デフォルトの名無しさん:2013/09/21(土) 16:28:46.68
最小のHTTPサーバのソースコードってないですかね?
mightttpやyesodみたいな巨大なヤツじゃなくて

hello world 文字列を返すだけに必要なコード片があったらおしえてください
412デフォルトの名無しさん:2013/09/21(土) 17:16:33.18
そろそろオワコンスクリプトでも稼動させてやるか
オワコンって書かれるとスレが伸びるようだからな
413デフォルトの名無しさん:2013/09/21(土) 17:56:34.79
>>410
無限リストを実現するのにどれくらいの量の無駄なメモリを必要とするの?
414413:2013/09/21(土) 17:58:21.37
>>410
すまん、恥ずかしながら完全に勘違いしてた。

>>413 は無視してくれ。
415デフォルトの名無しさん:2013/09/21(土) 18:49:11.71
>>411
Real Worldにのっていたような
自分で確認してみて
416デフォルトの名無しさん:2013/09/21(土) 19:08:37.57
>>415
TCPサーバとUDPサーバはあるけど、HTTPサーバのコード例はない
リクエスト解析とか全部受け持ってくれる関数があれば知りたいのだけど
できれば外部ライブラリのインストールなしでお願いします
417デフォルトの名無しさん:2013/09/21(土) 20:11:00.02
418デフォルトの名無しさん:2013/09/21(土) 20:17:42.45
http://www.mew.org/~kazu/proj/mighttpd/en/
httpサーバ周りのこと書いてあるみたい。
http://snapframework.com/
これはなんだろう。
419デフォルトの名無しさん:2013/09/21(土) 20:23:47.10
http://www.yesodweb.com/book/web-application-interface
http://ja.m.wikipedia.org/wiki/WSGI
WAIは、PythonのWSGIやRubyのrackみたいに、HTTPアプリケーション書くためのAPIなので、HTTPの実装はそれに沿ったものを選べる。
420デフォルトの名無しさん:2013/09/21(土) 20:29:23.91
WAI実装しているwarpってのでいいんじゃないかな?
http://hackage.haskell.org/package/warp
http://steve.vinoski.net/pdf/IC-Warp_a_Haskell_Web_Server.pdf
421デフォルトの名無しさん:2013/09/21(土) 20:49:30.99
422デフォルトの名無しさん:2013/09/21(土) 21:01:48.17
423デフォルトの名無しさん:2013/09/21(土) 21:06:21.14
waiはreplの後ろで動くから状態が見れるのかいいね
424デフォルトの名無しさん:2013/09/21(土) 23:01:30.39
副作用とは自発的対称性の破れって事だな
425デフォルトの名無しさん:2013/09/21(土) 23:15:04.37
インテリゲンチャ気取るな
実践こそがハスケル存亡の要だ
426デフォルトの名無しさん:2013/09/22(日) 00:43:55.06
Operationalモナドは何でa→Functor a→Monad aと一足飛びに生んでしまうの
間にいるはずのApplicativeの立場は
427デフォルトの名無しさん:2013/09/22(日) 05:55:44.31
やった、Applicativeは要らない子だったんや!
428デフォルトの名無しさん:2013/09/23(月) 15:34:22.59
Haskellでメモ化とかどうすればいいんですか?
デフォでメモ化されてたりそういうオプションがあったら嬉しいんですけど
429デフォルトの名無しさん:2013/09/23(月) 15:59:25.27
副作用のない関数はデフォでメモ化されてるようなもんじゃないの?
430デフォルトの名無しさん:2013/09/23(月) 17:33:52.52
>>428
1. まずは「Haskell メモ化」あるいは「Haskell Memoization」でググってみる。
2. ヒットしたページに紹介されている方法をいくつか試してみる。
3. 仕組みを理解する。

どこまでやった?
もし3で躓いているのなら、適切に質問すれば
俺含めてここの連中がよってたかってアドバイスするだろう。


>>429
んなわけあるか。

f x = x * 2
g = f 2 + f 2

たとえこんなシンプルな場合でも、
g の中で f 2 の結果がメモ化されていると「期待してはいけない」。
そんな保証は言語としての Haskell もコンパイラ GHC もしてはいない。

ただ、この程度なら GHC の最適化が働いてメモ化される「かもしれない」が、
繰り返すが「期待してはいけない」。
431デフォルトの名無しさん:2013/09/23(月) 17:42:19.71
>>428
こんな感じで書けば良い

x = sum 100

ans = x + x


>>429
そう思っていた時期が私にもありました・・・
432デフォルトの名無しさん:2013/09/23(月) 22:35:40.03
ハスケルのメモ化への過度な期待はふつケルのせいで根付いてしまったように思える
433デフォルトの名無しさん:2013/09/23(月) 22:38:35.98
俺は期待してる
誰が何と言おうとハスケルのこと信じてる
たとえ自分が傷付く結果になるとしても
434デフォルトの名無しさん:2013/09/23(月) 23:09:49.23
Rubyだとブロック付きのハッシュを使うとお手軽にメモ化できるんだけど:

 f = Hash.new { |hash, x| hash[x] = x * 2 }
 g = f[2] + f[2]

Haskellでは、どう書けばいいのだろうか?
435デフォルトの名無しさん:2013/09/23(月) 23:17:04.47
>>431
メモ化をなにか別のものと勘違いしていないでしょうか?

そんな感じで書いても決してメモ化はできません。

任意の引数によって関数が評価された際に、その引数と戻り値の対を記憶し、
次に同じ引数を用いて関数が評価される際に、再び戻り値を計算するのではなく、
その記憶させておいた対となる戻り値を返す、このような仕組みがメモ化です。
(どこにどう記憶させ、どう引き出すかによって様々な方法が考えだされている)

こんな感じで書けば良いと紹介されたものは、「任意の」という部分が抜けています。


>>434
4つ前のレス(>>430)の前半は読まれましたか?
436デフォルトの名無しさん:2013/09/23(月) 23:31:13.13
>>435
このスレは昔と変わらず、初心者には冷たいんですね....

というか、こんな(>>434)簡単な例すら1カキコでコードを示せないほど、
Haskellってのは使えない言語なんですか?
437デフォルトの名無しさん:2013/09/23(月) 23:48:57.88
>>436
やる気が高くなければ使えない言語です。
他の言語で簡単にできる事でも、同じことをHaskellでやろうとすると、たいていは苦労します。

また残念ながら、遊び半分で中途半端に理解してたらまともに使えない言語でもあります。

なので、メモ化の基礎はここでを訊くよりも、ネット上にある
すでにちゃんしたドキュメントになっているものをじっくり読むことをおすすめします。

初心者であるなら絶対にその方が良いです。


初心者が冷く感じるのは重々承知ですが、仕方ありません。
しかし中途半端に理解して後でこじれて、Haskellは面白くないと逃げられる方が辛いです。
438デフォルトの名無しさん:2013/09/24(火) 02:03:06.09
浸透していて本当に使える場合は、ありとあらゆる情報を教える
あまり浸透してなくて本当に使える場合は、情報を隠す
439デフォルトの名無しさん:2013/09/24(火) 07:51:54.42
雑草記事生え放題の汚染水浸透地区より
マサカリで適度に刈りこまれる土地改良区の方が住み良い
440デフォルトの名無しさん:2013/09/24(火) 10:08:05.68
441デフォルトの名無しさん:2013/09/24(火) 11:17:31.79
>>437
まあ、OA向きに作られた訳じゃなくて目的が違うからね。
実用言語=短期の投資回収が目的。
研究言語=長期の投資回収が目的。
442デフォルトの名無しさん:2013/09/24(火) 11:43:05.28
>>441
おもしろいね。
443デフォルトの名無しさん:2013/09/24(火) 12:43:01.74
>>441
Haskellは実用を目指して作られた言語だそうです。

短期の投資回収が目的かどうかは知りません。
444デフォルトの名無しさん:2013/09/24(火) 14:09:23.13
アメリカの金融会社で、商品構成が多種多様になりすぎて保守・新規開発
に悪影響が出始めたので、Haskellでルール記述して合理化したってのを見た事がある。
445デフォルトの名無しさん:2013/09/24(火) 16:29:50.98
ocamlのjane streetでないの?
446デフォルトの名無しさん:2013/09/24(火) 17:40:54.80
ルール記述までなんだろ
447デフォルトの名無しさん:2013/09/24(火) 18:35:58.56
>>434
残念ながら、どんな場合でも使えるメモ化方法はHaskellにはない
やり方は大きく分けて二つ
1. あらゆる引数に対応する戻り値を含む遅延データ構造を作る
2. メモ表を状態と捉えて、明示的に更新する

(1)の例
f_memo :: [Int]
f_memo = map (\x -> x * 2) [0..]
f x = f_memo !! x
この例は引数がたまたまInt一つ(で、負の数を無視した)から無限リストにできたけど、
一般の場合にはMemoTrieみたいなのを使う
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/MemoTrie
欠点は、引数の型が(要するに)[Bool]にエンコードできる必要があること
(OrdやHashableでは足りない)

(2)は、具体的にどうやって状態を扱うかによっていろいろ
Stateモナドを使ったり、IORefを使ったり
欠点は、論理的に必要ないのにモナドを使わざるを得ないことと、書くのが面倒なこと
448デフォルトの名無しさん:2013/09/24(火) 18:37:20.89
あと>>437みたいなのは初心者を遠ざける害悪だから消えれば良い
449デフォルトの名無しさん:2013/09/24(火) 19:16:39.36
そもそもだが、初心者はメモ化なんて気にするなと言いたい

初心者を卒業して、自分で興味をもって調べられる力がついてから、
メモ化ってなんだろう、どうやってやるんだろって考えれば良いんだよ

何事も身の丈に合ってた学習が大事


初心者のうちから FRP を理解しようとして結局無駄な遠回りをしてしまったバカからのアドバイスだ
450デフォルトの名無しさん:2013/09/24(火) 19:19:35.17
Haskellの初心者が他言語の初心者とは限らない
他言語で当たり前にやってるメモ化をHaskellではどうやるのか、って疑問が湧くのは自然だろ
451デフォルトの名無しさん:2013/09/24(火) 19:30:24.46
「メモ化」って「ボスが来た」のことか?

仕事中にGHCiで遊んでちゃいけないでしょ。
452デフォルトの名無しさん:2013/09/24(火) 19:35:27.34
:!sl
453449:2013/09/24(火) 19:51:32.57
>>450
いや、他言語の玄人だろうと、Haskellの初心者ならメモ化なんて気にするなということだ
気にするなと言われても疑問が湧いて気になってしかたないかもしれんが・・・ぐっと我慢だ

Haskellの初心者を抜けだしたら大いに取り組むということで、お楽しみはとっておけ
454デフォルトの名無しさん:2013/09/24(火) 20:49:27.26
「Haskellでメモ化ってどうやってやるの?」
に対して返答が
「気にするな」
ってギャグかよ

Haskellでのメモ化に特に前提知識が要る訳でもないし、隠す理由がない
455デフォルトの名無しさん:2013/09/24(火) 20:54:10.86
本嫁ってのが答えなんとちゃうか?
456デフォルトの名無しさん:2013/09/24(火) 20:58:46.57
>>449
ちょっと面白い数学の例なんかをやろうとすると必然的にメモ化が欲しくなるので、メモ化の話はモナドの文脈だろうけど
初心者にも説明されるべきだと思うなぁ。
457デフォルトの名無しさん:2013/09/24(火) 21:01:32.87
何故、Haskellのスレでメモ化なんて低水準な話題が出てくるのかわからないな。
458デフォルトの名無しさん:2013/09/24(火) 21:05:22.33
Haskellは低水準もこなせる言語だから
459デフォルトの名無しさん:2013/09/24(火) 21:09:56.52
それは初耳だ
460デフォルトの名無しさん:2013/09/24(火) 21:15:49.55
むしろ低水準でこそ使われるべき
461デフォルトの名無しさん:2013/09/24(火) 21:18:13.78
>>460
Prologとは完全に決別ですね。
462デフォルトの名無しさん:2013/09/24(火) 21:19:02.37
>>457
他の言語のテキストにはTCOが使えないのでメモ化で〜という話が載ってるから
463デフォルトの名無しさん:2013/09/24(火) 21:32:41.67
>>454
ちょっと違う

「初心者なんだけど、Haskellでメモ化ってどうやってやるの?」
「気にするな」

これなら特別おかしいという事はないだろ

まぁ、当然反論はあるだろうが、こういう意見もあるだろうなと認めてくれるだろ?
464デフォルトの名無しさん:2013/09/24(火) 21:52:40.08
認めるわけねえだろチンカス
465デフォルトの名無しさん:2013/09/24(火) 21:54:32.58
無料で教えるのはちょっと…
466デフォルトの名無しさん:2013/09/24(火) 22:47:43.04
>>435
あるぇ?

何スレか前にここで

print (sum 1000000)+ sum 1000000)

ってしてもメモ化されないで、2回計算した分の実行時間が掛かるって書き込んだ時に

x = sum 1000000

print (x + x)

ってするように、教わったんだけど・・・
467デフォルトの名無しさん:2013/09/24(火) 22:48:26.22
+のまえの”)”は打ち間違えです・・・
468デフォルトの名無しさん:2013/09/24(火) 22:54:50.61
ある式が2回評価されないっていうのと、同じ形の式が2回評価されないってのの違い
469デフォルトの名無しさん:2013/09/24(火) 22:57:16.25
>>466
バカか

それは 1000000 にしか対応してないだろ
ちなみに >>431 は 100 にしか対応していない

99 や 1 や -3 や 7 とかにも対応させろよ
でなきゃメモ化してるなんて胸張って言えんだろ
470デフォルトの名無しさん:2013/09/24(火) 23:51:09.72
>>469
自分も

f (1+2) (1+2)

とかすれば、自動的に(1+2)の部分をメモ化してくれるのかな?とか思った時期もあったけど、違うっぽいですよ?
あくまで

x = 1 + 2
f x x

とした場合のみ、らしいので、自分の感覚では、手続き型で変数に計算結果を代入してから使うのと同じだなぁ・・・とか思ってる。
結果が数値そのものか、数値を差すポインタかの違いだけで。
あなたの言うメモ化を実現するコードがあったら、私も見たい。覚えたい。使いたい!!
(私もまだまだ未熟なので)
471デフォルトの名無しさん:2013/09/25(水) 01:02:10.68
http://icfpconference.org/icfp2013/
ICFPスポンサーだと
Jane StreetはOCamlだけど、
Standard CharteredはHaskell使ってる。

http://cufp.org/conference/schedule
CUFPは、関数型言語の企業ユーザーのユースケースを発表する併設会議。
なんかGREEの人がHaskellの発表してる
472デフォルトの名無しさん:2013/09/25(水) 01:11:14.02
http://www.haskell.org/haskellwiki/Haskell_in_industry
これみて思ったんだけど、Tsuruも昔は、ICFPスポンサーやCUFP参加してたよね?
クレディスイスは、Haskell絶滅したことが記事になってたが、、、
473428:2013/09/25(水) 07:03:12.82
>>430
たらい回し関数の実装程度を目標に質問してました
それで
memoized_fib :: Int -> Integer
memoized_fib = (map fib [0 ..] !!)
where fib 0 = 0
fib 1 = 1
fib n = memoized_fib (n-2) + memoized_fib (n-1)
っていうのは見つけたんですがなぜこれがメモ化になるのかわかりません

>>447
もしかしてリストを返す関数は一度計算した分は記憶される感じですか?
474428:2013/09/25(水) 07:09:29.68
s/リストを返す/リストを内部に保持する/
475デフォルトの名無しさん:2013/09/25(水) 07:31:47.77
>>470
見るだけでいいのなら、ググって眺めろ

覚えて使うだけでいいのなら、>>447 でも紹介されている MemoTrie でも使っとけ
使い方は MemoTrie.hs のコードの一番最後にコメントで書かれてる

メモ化の仕組みを理解したいのなら、ググったページを読み、そこで使われているコードについて、
自分でチラシの裏にでも簡約される様子を描いてみる事をすすめる
(面倒でも、できるだけ丁寧に)

で、理解不能な点があれば、ここや、stackoverflow などで質問すればいい


ちなみに、MemoTrie の仕組み(基本アイデア)はここで学べる
http://conal.net/blog/posts/elegant-memoization-with-functional-memo-tries


まだまだ未熟というのが謙遜ではなく、本当に初心者であることを意味しているのなら、
やっぱりこういうのに手を出すのはちょっと早いような気がするのだが・・・
いや、MemoTrie.hs や他のメモ化の方法を活用するだけなら簡単だけど
476デフォルトの名無しさん:2013/09/25(水) 07:36:58.75
>>473
>もしかしてリストを内部に保持する関数は一度計算した分は記憶される感じですか?
まず、リストに限らず同じトップレベル変数の値は一回しか計算されない

v :: Int
v = ...定義...

なら、...定義...の部分の評価はプログラムの実行を通して一回か零回
同様に、>>447のf_memoは、各要素が多くて一回しか評価されないからメモ化になってる

>>473のmemoized_fibはややこしいけど、memoized_fib自体は一回しか評価されないので、
その中のmap fib [0..]というリストも一個しか作られない

ちょっと注意が必要なのは、ラムダの中に書いた式は毎回再計算されても文句が言えないということ
memoized_fibをちょっと変えて
memoized_fib' x = map fib [0..] !! x
と書くと、リストがラムダの中にあるから、GHCのオプションによってはリストが毎回作り直される
477デフォルトの名無しさん:2013/09/25(水) 07:40:05.85
>>475
遅延評価を頭に叩き込むという点でむしろ初心者向きの題材だと思う
478デフォルトの名無しさん:2013/09/25(水) 07:52:50.73
>>437
おれは >>447 ではないが、

リストどころか、一度評価されて値になったものは、GC されなければずっとメモリに残る
(評価されなくても、サンクの状態でも残るが)

初めて使用する「変数」が指している先はサンクだ
(サンクは、未評価のコードが格納されているメモリ領域と考えて、とりあえず問題ない)

その変数が評価されると、サンクの評価された部分だけが何かの値に変わる
だから、その変数の2度目以降の使用時には評価済みの値が使われることになる

この「評価された部分だけ」という部分が遅延評価だ
リストは結果的にそれぞれの要素が独立して評価済みだったり未評価だったりにできる


これを踏まえれば、>>473 のコードは >>466(や >>431) のコードと本質的に同じだと分かる
479デフォルトの名無しさん:2013/09/25(水) 08:14:11.57
そもそも静的言語にとってメモ化なんて
重要な事か?
480デフォルトの名無しさん:2013/09/25(水) 08:33:11.26
>>466
メモ化と、同じ部分式を繰り返し評価しないためのグラフ簡約などの話は全く別です。
481デフォルトの名無しさん:2013/09/25(水) 18:10:34.76
メモ化と遅延評価って別物?
482デフォルトの名無しさん:2013/09/25(水) 18:37:58.22
このスレって2chの中で一番平均偏差値が高い気がする
483437:2013/09/25(水) 18:37:58.72
>>447
丁寧な説明、ありがとうございました

(1) については、Haskellの遅延データ構造では評価結果が自動的にメモ化されるので、
対象領域に応じた適切なデータ構造を選択すれば(選択できれば?)、
お手軽にメモ化は可能である、ということなんだと理解しました

(2) については、難しいのは Ruby も同じですね
既存のデータ構造では上手くメモ化できない場合、独自のクラス定義やらが必要になります
Haskellについては、無理にモナドを使わずとも、対象領域に適した遅延データ構造を
設計する発想で考えたほうが単純な気がしないでもありません....
484434:2013/09/25(水) 18:38:48.81
>>483の名前欄が間違っておりました
485434:2013/09/25(水) 18:49:04.20
>>481
別物だけど、遅延評価を使うとメモ化が楽に書ける

たとえば>>434のRubuコードだと、先頭行の Hash.new で
ブロック(=ラムダ式)を使って代入式 hash[x] = x * 2 の「評価を遅延(delay)」させ、
その後のハッシュ参照式 f[2] で「評価を強制(force)」している
486デフォルトの名無しさん:2013/09/25(水) 23:50:35.72
対象:Platform 2013.2.0.0
環境:Windows2000 SP4
症状:Win32-2.3.0.0モジュールの読み込みに失敗する

現場:
GHCi, version 7.6.3: http:://www.haskell.org/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude>Graphic.Win32.Window.mkClassName "TEST"
Loading package array-0.4.0.1 ... linking ... done.
Loading package deepseq-1.3.0.1 ... linking ... done.
Loading package bytestring-0.10.0.2 ... linking ... done.
Loading package Win32-2.3.0.0 ... linking ... <interactive>: D:\Program Files\Haskell Platform\2013.2.0.0\lib\Win32-2.3.0.0\HSWin32-2.3.0.0.o: unknown symbol `_GetProcessId'
ghc.exe: unable to load package `Win32-2.3.0.0'
Prelude>Help me
487デフォルトの名無しさん:2013/09/26(木) 03:21:46.93
Windows2000 ...
488デフォルトの名無しさん:2013/09/26(木) 06:06:36.76
>>486
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683215(v=vs.85).aspx
GetProcesIdはWindows XP SP1以降らしいよ
OSをアップグレードすればいいんじゃね
489デフォルトの名無しさん:2013/09/26(木) 07:03:13.26
Windows2000はサポート外なのか。。。ギギギ
490デフォルトの名無しさん:2013/09/26(木) 11:45:18.49
virtual boxからlinuxやな
491デフォルトの名無しさん:2013/09/26(木) 23:00:38.98
>>489
古いバージョンのGHCを使う手もある
492デフォルトの名無しさん:2013/09/27(金) 03:05:50.19
>>491
これが妥協ラインだなぁ
なんか悔しいわ
出来上がったバイナリも最新コンパイル版に劣ると思うだけでコーディングも身が入らないわぁ
493デフォルトの名無しさん:2013/09/27(金) 03:09:51.25
ひょっとしてWin32パッケージバージョン落として入れ直して
これに依存する全パッケージも再度ビルドインストールし直したら最新GHC使えるってことすか?
494デフォルトの名無しさん:2013/09/27(金) 07:33:15.18
>>493
Windows2000にギガパッチあてることになると思う
495デフォルトの名無しさん:2013/09/27(金) 21:07:50.83
beta が、本ちゃんになった

Well-Typed and the Industrial Haskell Group (IHG) are very pleased to announce that Hackage 2 is now powering the official Hackage server.
496デフォルトの名無しさん:2013/09/28(土) 02:06:08.44
産業ハスケル団が暗躍しているな
497デフォルトの名無しさん:2013/09/28(土) 15:06:03.38
オワコンだしなHaskellは
プログラミング言語のランキングにすら乗ってない
ゴミだったな(笑)
数年前に始まって一瞬で散ったな(笑)
オワコン(笑)(笑)(笑)(笑)
498デフォルトの名無しさん:2013/09/28(土) 15:15:09.53
馬鹿には無理なのに、低能が使ってみようと無駄な努力をして
結局まともに書けるようにならず、憎しみだけがHaskellの名と共に記憶に刻みこまれ
掲示板に呪詛を書き込むようになる
そんな言語だな
499デフォルトの名無しさん:2013/09/28(土) 15:23:45.54
オレニハ ワカラナカッタ コンテンツ
略してオワコンだな
500デフォルトの名無しさん:2013/09/28(土) 15:38:58.52
よし・・・誰もいなくなった

いまのうちにHaskellは頂いて行く
フハーーーハッハッハ!!
501デフォルトの名無しさん:2013/09/28(土) 15:43:46.20
            〃´⌒ヽ
.     , -――  メ/_´⌒ヽ
   /   / ̄  ´ヽ ヽ
.  /  ,  /// ト. !  、 丶ヽ
  l  / /(((リ从  リノ)) '
  |  i  l   . ヽノ .V l
  l ,=!  l  ///    ///l l   ねんがんのHaskellをいただいたぞ!
  l ヾ! ', l    ヽ_フ   l l
  |  ヽヽヽ        //
  l    ヾ≧ , __ , イ〃
  li   (´`)l {ニ0ニ}、 |_"____
  li   /l, l└ タl」/l´        `l
  リヽ/ l l__ ./  |_________|
   ,/  L__[]っ /      / ::::::::/           ヽ、   :: ::: ::: :::::::::::::::::::::::::::::::::
:::::/            lハ ::: : :: :::::::::: :::::::::::::::::::::::::::::
::::l           l  /ノリ ::: : :: ::::::::::: :::::::::::::::::::::::::::::
:::|          /) / ::: : :: ::::::::: :::::::::::::::::::::::::::::
::l          /イ/| . :. :. .:: : :: :: :::::::: : ::::::::::::::::::
/          / ||/ / ̄ ̄ ̄ ̄ ̄7l::::::::::::::::::::
      i   /_,/i!/         / l::::::::::::::::
      l    人  /   λ    /  /::::::::::::::::
     l   / /⌒ヽ  ASKUL  /  /::::::::::::::::
     l  /il  |   )      /  /::::::::::::::::
     ll l i! `ー、\___ / n/::::::::::::::::
     lヽ l    |\. \   /⌒〉::::::::::::::::
502デフォルトの名無しさん:2013/09/28(土) 19:38:53.12
日本語入出力さえ
日本語入出力さえデフォルトで不自由なく使えれば…
503デフォルトの名無しさん:2013/09/28(土) 20:25:23.99
>>502
Windows使い?
それならGHC 7.8でSystem.IOがCJKに対応するはず
504デフォルトの名無しさん:2013/09/28(土) 23:15:57.27
505デフォルトの名無しさん:2013/09/29(日) 03:58:24.32
日本語はicuとかいうのを使えばいいのか?
506デフォルトの名無しさん:2013/09/29(日) 08:52:53.91
windows以外なら何もしなくていいはず
windowsでも動いて欲しいならtext-icuだっけ
507デフォルトの名無しさん:2013/09/29(日) 09:49:29.46
本当にWindowsってプログラミング界の足を引っ張ってんな
508デフォルトの名無しさん:2013/09/29(日) 10:16:54.74
半分は同意するが、all-the-world's-a-UNIX 症候群には与したくないな。
509デフォルトの名無しさん:2013/09/29(日) 10:30:40.60
all-the-world's-a-UNIX 症候群には与したくないな
510デフォルトの名無しさん:2013/09/29(日) 11:48:38.30
511デフォルトの名無しさん:2013/09/29(日) 11:49:18.67
>>507
はやく UTF-8 通るようにしてくれ
とは思う
512デフォルトの名無しさん:2013/09/29(日) 14:45:08.01
なんだかんだ言って、unixよりwindowsで開発した方が可搬性が高い件について
513デフォルトの名無しさん:2013/09/29(日) 14:50:54.15
haskellの場合は、Windowsのコンソールで使いたい人とWindowsコンソールに詳しい人、開発する気のある人にギャップあるんだろうね。

MSのスタンスは、POSIX系の国際規格には入札に必要な範囲で対応というイメージ
http://support.microsoft.com/kb/93360/en
一時期商用の需要があって有償対応オプション用意してたけど、いまはもうメンテしてないのかな。
514デフォルトの名無しさん:2013/09/29(日) 14:51:35.12
clojureclrという.net向けのツールも最初は、mono/linuxのposixコンソールで動か無かった。

scala,clojureもコンソール向けにjlineというreadline対応ライブラリを組み込んでreplが動くようになってるが、
当然windowsのコンソールでは邪魔なので、あとから外したりしてる。
515デフォルトの名無しさん:2013/09/29(日) 15:05:20.06
ゲーム系の開発者は、VisualStudioで開発して、linuxで動かすということがあり、
開発環境と本番環境で動くように作ってるというのは聞いたことがある。
ただあんまりインターラクティブシェルをつくってる話はきかない。

検索したらposixからwindowsの記事の方が上にきてた。
http://msdn.microsoft.com/ja-jp/library/y23kc048(v=vs.90).aspx
http://mattn.kaoriya.net/software/20120507131015.htm

なんとなくhaskellのライブラリも、ポータビリティ確保、環境ごとの高速化の順序ではないイメージ。
516デフォルトの名無しさん:2013/09/29(日) 15:17:38.68
>>507
ディストリによって互換性が大きく異なり、
たかだかブラウザを動かす程度でも独自にライブラリをビルドする必要があるLinuxの方がよっぽど足引っ張ってると思うが…
http://tubapr.hatenablog.com/entry/2013/07/31/142736

Linuxはディストリが乱立し互換性も無いせいでソフトウェア資源が分断されちゃってる状況
流行りのディストリじゃないとChromeすらまともに動かない現実
517デフォルトの名無しさん:2013/09/29(日) 15:19:54.35
ポータビリティ考えるとgnuライセンスのglibか、mitライセンスで再実装したeglibをベースにするといいと思う。
http://ja.m.wikipedia.org/wiki/GLib
http://d.hatena.ne.jp/kakurasan/touch/20111215/p1
518デフォルトの名無しさん:2013/09/29(日) 15:44:52.27
別にWindowsがLinuxに比べて悪いという話じゃなくて、
windowsとposixのAPIが大きく違いすぎて両方に対応するのが面倒という話だろ
windows版を積極的に使ってるGHC開発者が少ないのでバグが放置されがちになっている
519デフォルトの名無しさん:2013/09/29(日) 15:51:29.57
5年前にWindowsで作ったモノを今のWindows8で動かすより、5年前にLinuxで作ったモノを今のLinuxディストリで動かす方が難しい
520デフォルトの名無しさん:2013/09/29(日) 15:52:04.18
そこでゲームプラットフォーム Steam OS の誕生である。
521デフォルトの名無しさん:2013/09/29(日) 16:12:21.19
Steamにゲーム開発環境としてHaskellを管理してもらうGreen Light投票マダー?
522デフォルトの名無しさん:2013/09/29(日) 16:33:11.13
エディタで""などを補完してくれるやつありますよね?
でも"カーソル"になって文字を打ち込んだ後""から抜けて "あいうえお"カーソル
っていうふうにやりたいんですが
やれるエデタ知りませんか?
Haskellでそういうエディタ使ってるひといたら教えてください
523デフォルトの名無しさん:2013/09/29(日) 16:33:52.38
← →で移動するの大変なので教えてください
GUIのemacsやvi以外のやつで教えてください
524デフォルトの名無しさん:2013/09/29(日) 16:42:32.96
>>522
np
Thomas Schilling
Anders
Jean-Philippe Bernardy
Masayuki Hatta
Jeff Wheeler
Corey O'Connor
525デフォルトの名無しさん:2013/09/29(日) 16:44:34.62
Haskellで制約プログラミングできますか?
526デフォルトの名無しさん:2013/09/29(日) 16:53:15.84
>>524
そんなエディタ無いんですが
真面目に教えてください
527デフォルトの名無しさん:2013/09/29(日) 16:57:07.74
>>523
vimとEmacs以外だとSublimeTextを使ってる人を見たことがある
自分では使ってないので詳しいことは知らん
528デフォルトの名無しさん:2013/09/29(日) 17:05:53.39
SublimeTextとか新しいエディタ言わなくていいので
他のやつ教えてください
529デフォルトの名無しさん:2013/09/29(日) 17:06:41.88
>>526
>Haskellでそういうエディタ使ってるひと
530デフォルトの名無しさん:2013/09/29(日) 17:11:54.19
>>526
仕様通りhaskellで、そういうエディタを使ってそうな人を列挙しましたが何か?
531デフォルトの名無しさん:2013/09/29(日) 17:14:18.89
本当に""とか()とかの移動できるのでしょうか?
SublimeTextは""っていれたらどのような動作しますか?
"カーソル" 文字を打ち終わって "文字"カーソルにするにはどういうキーやってますか?教えてください
532デフォルトの名無しさん:2013/09/29(日) 17:15:58.54
ここまでウザい教えて君はじめて見たな
533デフォルトの名無しさん:2013/09/29(日) 17:17:13.70
動画アップロードしたほうがいいでしょうか?
ちょっとどういう動作か教えるために動画アップロードしてきますね
534デフォルトの名無しさん:2013/09/29(日) 17:28:37.73
動画のあげ方がわからないので引き続き教えてください
535デフォルトの名無しさん:2013/09/29(日) 17:35:51.29
>>534
notepad++
536デフォルトの名無しさん:2013/09/29(日) 17:45:32.87
動画の上げかたすら10分で諦めるくらいなんだから、さっさと人生も諦めたらいいのに
537デフォルトの名無しさん:2013/09/29(日) 17:49:06.79
>>530
使ってる人じゃないじゃん。
538デフォルトの名無しさん:2013/09/29(日) 17:51:26.21
emacsで充分
539デフォルトの名無しさん:2013/09/29(日) 17:57:05.43
教えてください
notepad++ってやつは前に試しましたがうまくできませんでした
540デフォルトの名無しさん:2013/09/29(日) 18:33:59.89
文字を打ち終わるってどうやって判定するの
541428:2013/09/29(日) 19:51:29.68
>>530
アスペネタいいね!
542デフォルトの名無しさん:2013/09/29(日) 19:58:24.54
>>537
Haskell用エディタのコントリビュータのリストなんだけど
543デフォルトの名無しさん:2013/09/29(日) 21:02:06.38
早く教えてください
544デフォルトの名無しさん:2013/09/29(日) 22:09:46.86
いまいち言っていること分からんが、
それvim(viは知らん、emacsも知らん)で出来るぞ。あとスレ違、これ重要。
545デフォルトの名無しさん:2013/09/29(日) 23:13:04.94
あほしかいねえやこのスレ
使えね
ゴミオワコン
546デフォルトの名無しさん:2013/09/30(月) 00:09:46.43
俺はアンチ関数型派なんだけど>>545みたいなのが仲間だと思うと関数型頑張れとしか言いようがない。
547デフォルトの名無しさん:2013/09/30(月) 02:58:52.19
アンチ関数型派ってコールバックとかどうやって実装してるのだろうか
548デフォルトの名無しさん:2013/09/30(月) 06:27:13.46
import Control.Monad (forever)
import Control.Concurrent (forkIO)
main = forever $ forkIO (return ())
549デフォルトの名無しさん:2013/09/30(月) 10:16:37.10
x あほしかいねえやこのスレ

o あほしかいねえやこの板
550デフォルトの名無しさん:2013/09/30(月) 11:18:15.41
>>549
傷ついた!謝罪と賠償を要求する!
551デフォルトの名無しさん:2013/09/30(月) 11:21:11.23
Haskellじゃないんですが
皆さんPHP書くときどんなエディタ使ってますか?
教えてください
552デフォルトの名無しさん:2013/09/30(月) 11:23:05.79
Haskellじゃないんですが
expressっていうnode.jsやPerlのCGI::Aplicationのフレームワークは
MVC型のフレームワークとどうちがうんですか?
私が生まれる前のことなのでイマイチわかりません
フレームワークというとMVC型のイメージしかないんですが教えてください
553デフォルトの名無しさん:2013/09/30(月) 11:24:15.46
こいつ最高にアホ
554デフォルトの名無しさん:2013/09/30(月) 11:28:26.08
試せば済むだろ知恵遅れ
555デフォルトの名無しさん:2013/09/30(月) 11:37:02.83
そんなこといわずに教えてください
556デフォルトの名無しさん:2013/09/30(月) 14:01:11.70
relude> :m + Control.Monad
Prelude Control.Monad> let powerset = filterM (const [True, False])
Prelude Control.Monad> powerset [1,2,3]
[[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3],[]]


これだけでべき集合が書けるhaskellって凄くね?
ちょっと感動したんだが
557デフォルトの名無しさん:2013/09/30(月) 14:21:04.90
これをつかって
>>98これの110円の払い方を考えてみました
[x|x<-powerset[10,100,1000],sum x == 110]

どこまでいけるのか[1..]を増やしていくと
20数個でout of memoryって出るんですけど
haskellでもここらへんが限界?
558デフォルトの名無しさん:2013/09/30(月) 14:43:58.65
>>555
教えて君は巣に帰れ
559デフォルトの名無しさん:2013/09/30(月) 14:45:25.40
>>552
私が生まれる前ってexpressができたのは最近だけど?
バカだなお前は
560デフォルトの名無しさん:2013/09/30(月) 14:47:02.38
>>553
最高にアホというよりクズ
情報乞食が必死
迷惑をかんがえろ

>>559
いちいち報告すんなカス
561552:2013/09/30(月) 14:48:28.41
ふざけないで教えてください
expressっていうnode.jsやPerlのCGI::Aplicationのフレームワークは
MVC型のフレームワークとどうちがうんですか?
562デフォルトの名無しさん:2013/09/30(月) 14:55:44.27
真・スルー 何もレスせず本当にスルーする。簡単なようで一番難しい。
偽・スルー みんなにスルーを呼びかける。実はスルーできてない。
予告スルー レスしないと予告してからスルーする。
完全スルー スレに参加すること自体を放棄する。
無理スルー 元の話題がないのに必死でスルーを推奨する。滑稽。
失敗スルー 我慢できずにレスしてしまう。後から「暇だから遊んでやった」などと負け惜しみ。
願いスルー 失敗したレスに対してスルーをお願いする。ある意味3匹目。
激突スルー 話題自体がスルーの話に移行してまう。泥沼状態。
疎開スルー 本スレではスルーできたが、他スレでその話題を出してしまう。見つかると滑稽。
乞食スルー 情報だけもらって雑談はスルーする。
質問スルー 質問をスルーして雑談を続ける。
思い出スルー 攻撃中はスルーして、後日その思い出を語る。
真・自演スルー 議論に負けそうな時、ファビョった後に自演でスルーを呼びかける。
偽・自演スルー 誰も釣られないので、願いスルーのふりをする。狙うは4匹目。
3匹目のスルー 直接的にはスルーしてるが、反応した人に反応してしまう。
4匹目のスルー 3匹目に反応する。以降5匹6匹と続き、激突スルーへ。
563デフォルトの名無しさん:2013/09/30(月) 15:17:59.27
>>561
使ってみればいいっていってんだろキチガイ
564デフォルトの名無しさん:2013/09/30(月) 15:20:52.88
>>550
自分があほだということは認識してるようですね
565デフォルトの名無しさん:2013/09/30(月) 15:22:13.59
こうやってHaskellスレは壊れていく
566デフォルトの名無しさん:2013/09/30(月) 17:52:22.76
Haskellスレが壊れてない時なんてあったんてすか!?
567デフォルトの名無しさん:2013/09/30(月) 18:14:04.00
>>566
いちいち反応するなクズ

>>552
おでんと煮物ってぐらい違う
568デフォルトの名無しさん:2013/09/30(月) 18:16:50.69
わけわかりません
expressっていうフレームワークはMVCではないのでしょうか?
教えてください
569デフォルトの名無しさん:2013/09/30(月) 18:18:42.96
>>567
3匹目のスルー
570デフォルトの名無しさん:2013/09/30(月) 19:51:07.04
ほんとに外国じゃHaskell廃れてきてるの?
571デフォルトの名無しさん:2013/09/30(月) 19:52:34.62
>>569
4匹目のスルー
572デフォルトの名無しさん:2013/09/30(月) 20:12:03.74
>>570
検索方法すら知らない奴には縁が無いから心配するな。
573デフォルトの名無しさん:2013/09/30(月) 20:12:14.23
>>570
http://www.google.com/trends/explore?q=ruby,python#q=haskell, ocaml, erlang, f#&cmpt=q
Google Trendsでm見ると検索ボリュームは減ってきてるかも
ただ関数型言語じゃわりと検索されてる方

ちなみにScalaをここに加えるとScalaが圧倒的に検索されてる
http://www.google.com/trends/explore?q=ruby,python#q=haskell, ocaml, erlang, f#, scala&cmpt=q
574デフォルトの名無しさん:2013/09/30(月) 20:14:07.39
スペース入ってるせいでリンク扱いされない場合はhttpから&cmpt=qまでコピペしてアドレスバーに張ってくれ。
575デフォルトの名無しさん:2013/09/30(月) 20:22:54.92
>>570
廃れてる
何度も聞くなキチガイ
オワコンなんだよ

>>568
ググれカス
だからお前はクズなんだよwww
576デフォルトの名無しさん:2013/09/30(月) 20:29:56.92
>>568
こいつはただのキチガイでした

会社でもこんなこときいてるのか?池沼かよ(笑)
っで?expressが知りたいならもっと教えて!っていうことだな(笑)
577デフォルトの名無しさん:2013/09/30(月) 20:30:59.70
どうでもいいので早く教えてほしいです
expressってMVCなんでしょうか?
express MVCで検索してもでてきません
教えてください
スレ違いですみません
ですがJavascriptやってる日といたので教えてください
578デフォルトの名無しさん:2013/09/30(月) 20:31:48.46
(キチガイの隔離スレ正常に機能中)
579デフォルトの名無しさん:2013/09/30(月) 20:33:23.53
perlスレ荒らされたやつがこのウザさをわからせるために
Haskellスレにも同じことしてんだろ
580デフォルトの名無しさん:2013/09/30(月) 20:45:50.08
>>577
早く消えろゴミ
581デフォルトの名無しさん:2013/09/30(月) 20:48:46.88
言語関係なく何でもいいから荒らしたいのか

> 579
>>perlスレ荒らされたやつがこのウザさをわからせるために
普通は荒らしてる本人と考えるだろw
582デフォルトの名無しさん:2013/09/30(月) 21:05:42.96
言っとくけど俺をあまりナメないほうがいいよ
プログラマー板でコテハンやってるしこのスレ潰すくらいの影響力は持ってるから
くだらないことで刺激して後悔しないようにね
583デフォルトの名無しさん:2013/09/30(月) 21:16:13.02
たしかにこのスレはスルースキル低い奴が多いがその釣り針はちょっと大きすぎるのではないか(困惑)
584デフォルトの名無しさん:2013/09/30(月) 23:04:53.39
っとわめく無能であった
585デフォルトの名無しさん:2013/09/30(月) 23:09:51.13
おーいみてるー?尾崎隆大(笑)
586デフォルトの名無しさん:2013/09/30(月) 23:12:28.36
っとわめく無能であった
587デフォルトの名無しさん:2013/10/01(火) 00:02:44.64
Haskellスレ壊滅
588デフォルトの名無しさん:2013/10/01(火) 01:30:58.06
諸君、議論したまえ
589デフォルトの名無しさん:2013/10/01(火) 03:13:53.29
>>585
なんで突然私の名前が出てくるのかな。
590尾崎隆大:2013/10/01(火) 06:22:16.96
今回のスレで私の発言は >>457 >>461 だけだと思うし、これも、
http://ja.wikipedia.org/wiki/Prolog#.E9.9A.8E.E4.B9.97.E4.BF.9D.E5.AD.98.E8.A8.88.E7.AE.97
の低水準なイメージがあったから。課題に使わせてもらったのは、
http://nojiriko.asia/prolog/haskell23_100.html
だけ。何故(笑)なのか分らん(笑)
591デフォルトの名無しさん:2013/10/01(火) 09:05:19.55
Freeモナドの前にまずはFix理解しないとダメなのか
だれかホモアニメのメタファーで説明してくれないかな
592デフォルトの名無しさん:2013/10/01(火) 12:05:26.78
593デフォルトの名無しさん:2013/10/01(火) 12:06:38.27
>>577
ヤフーにまでマルチポストしてんじゃねーよクズ
キチガイかお前は?アスペだなwキチガイw
迷惑なんだよキチガイ
594デフォルトの名無しさん:2013/10/01(火) 12:09:21.53
>>593
そいつは真性キチガイ
ム板で暴れまわる池沼

>>577
お前はヤフー知恵遅れとこのスレの趣旨を理解してんのか?
意味わかるか?
ここで質問するなってことだ
595デフォルトの名無しさん:2013/10/01(火) 12:10:29.52
またまた荒らしが沸いてる
どうにかならんの?
596デフォルトの名無しさん:2013/10/01(火) 12:12:53.33
どうでもいいので早く教えてほしいです

私の質問を春のやめてください

expressってMVCなんでしょうか?
デザパタってやつなんでしょうか?
MVCのほうかになにがあるんでしょうか?
expressはなんなんでしょうか?
597デフォルトの名無しさん:2013/10/01(火) 14:35:07.69
Microsoftが無償で提供している評価版のIDEのことです。
プログラミングを学ぶのに良い環境なので、是非、Windowsにインストールしましょう(^o^)/~
598デフォルトの名無しさん:2013/10/01(火) 15:54:12.85
尾崎隆大(笑)新所沢ライノーズ少年部部長(笑)
わざわざ本名出して書き込むやつ(笑)
599デフォルトの名無しさん:2013/10/01(火) 15:59:30.77
>>598
俺は野球やっていたがもっと遅く生まれて
新所沢ライノーズ、尾崎隆大監督のもとで野球をやりたかったな
Prologもやってんだろ?プログラム宿題解決してくれるんだろ?
まさに下請けしてくれるドラえもんじゃないか
600デフォルトの名無しさん:2013/10/01(火) 16:02:02.42
>>590
自己紹介乙
Twitterに帰れ

>>599
お前は一生ボール拾いだけどなw

>>596
ねえ?MVCって意味わかってる?
ググろうぜ無能
ググれないならインターネットの回線を切断することが重要だよ
今からはさみをもってネットの回線を切ればいい
そうすれば解決するから

尾崎隆大
https://twitter.com/TakaoOzaki
601デフォルトの名無しさん:2013/10/01(火) 16:02:34.13
荒れまくり・・・
なにがあったんだよHaskell板・・・
602デフォルトの名無しさん:2013/10/01(火) 16:09:16.71
940 名無しさん@実況は実況板で [sage] 2013/07/06(土) 18:13:08.33 ID:eTXsr4dg
埼玉 新所沢ライノーズにパワハラコーチがいる。
小学生相手に言葉遣いが酷いです。
この世界ってこういうものなのですか?
一生懸命頑張っている子達に、ヘタクソとか馬鹿野郎とかって普通ですか?

946 名無しさん@実況は実況板で [sage] 2013/07/20(土) 07:24:25.20 ID:4Av9qiS0
それってライノーズのAさんですね?
試合時に審判からも注意されてるの何度か見てますよ。
息子さんが大活躍しているそうで調子に乗っているのか、誰からも注意されないのかって感じでしょうか。
603デフォルトの名無しさん:2013/10/01(火) 16:12:55.70
諸君、新所沢ライノーズについて議論したまえ
604デフォルトの名無しさん:2013/10/01(火) 16:28:54.84
個人名出してる奴はなんなの?
マナー違反じゃないの?
倉りん実つらぬの?
衣食足らぬの?

あ、俺尾崎隆大じゃないからね(^ω^;)
605デフォルトの名無しさん:2013/10/01(火) 17:31:43.23
っとなげく池沼であった
606デフォルトの名無しさん:2013/10/01(火) 18:42:17.74
機能してないクソスレ
オワコンスレ
607デフォルトの名無しさん:2013/10/01(火) 18:57:27.90
プログラミング言語のシェアは現在新所沢ライノーズが1位ですが、
このまま新言語が出てくるまで天下でしょうか?
朝鮮でブームが去りつつあるHaskellは今後はどうなんでしょうか?
教えてください

みなさんの憶測でもかまいません
608デフォルトの名無しさん:2013/10/01(火) 19:19:18.15
>>607
オライリーの犀本はJavaScriptだね。
609デフォルトの名無しさん:2013/10/01(火) 19:24:21.13
>>608
お前にきいてませんキチガイはきえろ

>>577
ExpressってやつはDSLらしいです
RubyのsinatraっていうやつもDSLっていうやつらしいです
Sinatra は Rails のようなモデル-ビュー-コントローラ (Model-View-Controller,MVC) フレームワークではない。強いて言うならば,"Ruby を使用して web アプリケーションを作成するためのドメイン固有言語 (domain-specific language)" である。
610デフォルトの名無しさん:2013/10/01(火) 19:32:25.48
>>609
回答ありがとうございました!
DSLって何でしょうか?意味わかりません
PerlのCGI::ApplicationもDSLなのでしょうか?
MVC以外の概念のフレームワークの名前ってどんなのがありますか?
611デフォルトの名無しさん:2013/10/01(火) 19:35:53.86
さっさとこのスレ違は消えろよクズwww
612デフォルトの名無しさん:2013/10/01(火) 19:38:26.21
>>611
スルーできない、答えられないお前が消えろ(笑)
そしてHaskellスレは質問君によってつぶされたな(笑)
613デフォルトの名無しさん:2013/10/01(火) 20:15:51.21
ム板屈指の糞スレ
614デフォルトの名無しさん:2013/10/01(火) 21:03:39.22
HaskellってGHC拡張なしで大規模開発できるの?
615デフォルトの名無しさん:2013/10/01(火) 21:35:18.02
できないし、その拡張がずっと使えるという保証もない
実験言語と割り切るしか無い
616デフォルトの名無しさん:2013/10/01(火) 22:11:20.17
(;ω;)
617デフォルトの名無しさん:2013/10/01(火) 22:21:28.93
>>614
C++もVC++のMFCや.netみたいな拡張ライブラリないとまともに開発出来ないだろ?
将来も使える保証無いだろ?

どの言語も基本同じ。
マイナーな言語はその拡張ライブラリを作って貰えない可能性が高いけど、Haskellはマイナーな言語の中では恵まれてる方だと思う。
618デフォルトの名無しさん:2013/10/01(火) 23:24:50.96
>>612
糞スレ以前に機能してないんですけど
荒らされまくって
619デフォルトの名無しさん:2013/10/01(火) 23:25:52.52
っと嘆くクズであった
620デフォルトの名無しさん:2013/10/01(火) 23:26:56.95
>>610
ん?だからググろうなクズwww
いちいちここで質問を書くなら
Googleの検索バーに質問内容を打ち込もうwww
それすらわからないクズなんだなw
621デフォルトの名無しさん:2013/10/01(火) 23:27:45.47
中学時代のHaskellの授業でインターネットを使った時

みんなが自分の好きな漫画や野球のページを見てる時に

自分だけこれみよがしに2chにつないでAAとかを周りに見せてたこと

しかも「このページって何?」って聞かれた時に「ヤバイ奴らの集会所みたいなもん」とか答えたこと

さらに友達に2chへの行きかたを教えるためにヤフーで2chって検索させて

でてきたリンクをクリックして2chのトップページが表示された瞬間に

そいつの耳元で「Welcome to Underground」ってささやいたこと
622デフォルトの名無しさん:2013/10/01(火) 23:29:56.74
そこはWelcome to the Dependency Hellにして欲しかった
623デフォルトの名無しさん:2013/10/01(火) 23:46:33.70
教えてくんはちょっと落ち着いた方が良い
自分もHaskellの事はちんぷんかんぷんだと思うが
教える方も実はよく分かってないんだ
それぐらい難しい言語なんだよ
それを理解してくれよな
624デフォルトの名無しさん:2013/10/01(火) 23:49:33.21
っとなげく要望君であった
625デフォルトの名無しさん:2013/10/01(火) 23:52:16.58
>>632
>そこはWelcome to the Dependency Hellにして欲しかった

ん?だったらお前が書き直して貼り付けろや
お前がいちいちレスしたから荒れるんだろ?
迷惑だなお前はモテないし仕事もできない無能っぷりがにじみ出てるぜ?

>>623
っで?wwwwwwwwwwwwwwwwwwwwwww
ちんぷんかんぷんならわかりやすくお前が教えろよwwwwWWWww
いちいちクソ荒らしにレスするなキチガイwww迷惑してんだよwww
お前みたいなクズが嵐に絡むからあれんだ?わかるか?クズwww
わかったらこのスレから消えろチョンwww

>>624
お前もイチイチレスするなクズ
626デフォルトの名無しさん:2013/10/01(火) 23:53:14.89
もうだめだなこのスレ
Haskellの話題だすだけで荒れる
たすけて
627デフォルトの名無しさん:2013/10/01(火) 23:54:02.17
っとわめく他力本願のクズであった
628デフォルトの名無しさん:2013/10/02(水) 00:22:25.30
このスレは人多めだよな。
年齢層低めなところは、ほかのソーシャルメディアに移ってる。
629デフォルトの名無しさん:2013/10/02(水) 00:55:14.92
厨房はエロ動画漁ったりゲームやってりゃいいのに、なんでこんなスレ荒してる。
630デフォルトの名無しさん:2013/10/02(水) 01:05:34.41
さっさと消えろキチガイ
631デフォルトの名無しさん:2013/10/02(水) 05:45:53.47
>>617
Windowsなんて
将来も使われる保証ないだろ?
632デフォルトの名無しさん:2013/10/02(水) 14:55:14.05
そりゃそうじゃ
いつでもいつもいつもいつもHaskell崩壊
633デフォルトの名無しさん:2013/10/02(水) 16:50:48.44
WindowsがGoogleに潰される日はくるか
634デフォルトの名無しさん:2013/10/02(水) 16:56:14.50
こねえよごみ
ご飯がパンにつぶされる日はくるのか
みたいな無能な問い
クズだな無能
635デフォルトの名無しさん:2013/10/02(水) 16:57:21.98
っとわめく無能であった
636デフォルトの名無しさん:2013/10/02(水) 17:59:05.93
Googleがつぶさなくても勝手に自滅する
637デフォルトの名無しさん:2013/10/02(水) 20:08:37.87
世の中の仕事の9割は、Windowsでも充分な単純事務処理だから、潰れるとしても随分先の事。
638デフォルトの名無しさん:2013/10/02(水) 20:09:58.68
Excelでできない事を考えると頭がおかしくなる
639デフォルトの名無しさん:2013/10/02(水) 20:15:54.68
今自分はネットブックを使っている。

買うときには、ネットブックかAndroidタブレットかそこそこ悩んだものだが、
実際問題、Android端末ではGHCiは動かない。
640デフォルトの名無しさん:2013/10/02(水) 21:26:37.48
Haskell使わなければAndroidで充分とも言える。
641デフォルトの名無しさん:2013/10/02(水) 21:29:32.65
>>640
ム板でそれ言うか?
642デフォルトの名無しさん:2013/10/02(水) 21:47:54.07
Haskellはメモリ効率が悪いのでメモリはいくらでも欲しくなるし
マルチコアで簡単にスケールするのでCPUもいくらでも欲しくなる
643デフォルトの名無しさん:2013/10/02(水) 21:51:14.12
質問です
育毛剤のめばHaskellができるようになりますか?
644デフォルトの名無しさん:2013/10/02(水) 21:54:09.88
ハゲは消えろ
645デフォルトの名無しさん:2013/10/02(水) 21:55:22.66
ハゲはこちらへ

★ハゲがやってはいけないこと
http://uni.2ch.net/test/read.cgi/hage/1377963766/

>>634
米とパンとか頭大丈夫か?
Windowsは今後とも永久不滅
わかったらさっさと消えろキチガイはw
646デフォルトの名無しさん:2013/10/02(水) 21:56:02.29
(ハゲの気持ちがわからないこのスレ)
ゲハスレ
647デフォルトの名無しさん:2013/10/02(水) 21:57:08.97
   / ̄\
  .|    |    このスレはゲハとは関係なく
 /\_+_/\  朝鮮言語Haskell予定です。
 |_l   |   l_|  ご利用の皆様には大変ご迷惑を
 ヽ.|=ロ=|/   おかけしております。
   .|  |  |
   .|_|_|        ハゲ一同
   (_|_)    
648デフォルトの名無しさん:2013/10/02(水) 22:33:35.58
とあるリストがあって let l = [1,2,3]
この要素ひとつひとつに対して f :: Int -> IO (Maybe Int) な関数を適用して行き
Justが返ればそれ以降の処理を中止する
という処理はどう書けばいいんでしょうか?
forM l f から最初のJustを取り出す方法だと当然すべて要素に対して f を呼んでしまいます
649デフォルトの名無しさん:2013/10/02(水) 22:45:00.63
っとなげくハゲであった
650デフォルトの名無しさん:2013/10/02(水) 23:35:00.62
>>610
まず最初に、MVCはフレームワークではありません。
MVCはパターンです。それもアーキテクチャーパターン(設計パターン)と呼ばれるもので、アプリケーションの全体構成をどのように設計するのか?というものです。
「MVCフレームワーク」と呼ばれるものは、「MVCパターンを実装しやすいフレームワーク」という意味です。
フレームワークを利用したからMVCになるのではなく、あくまでプログラマーの手によってMVCが実装されるのです。

expressは、MVCパターンのうち主にControllerの実装をサポートしてくれます。
Viewについては、別途テンプレートエンジンを用意します。
Modelについては、一切実装されていません。
651デフォルトの名無しさん:2013/10/02(水) 23:45:32.72
>>610
あれはMVCではなく、ルーティングだけ提供するRubyでいうSinatraのようなものだと思ってます。
で、外付けのテンプレートエンジン(デフォルトjade)があるので、Viewも提供しているように見えます。
652デフォルトの名無しさん:2013/10/02(水) 23:52:54.07
>>651
知ったかぶりは消えろ
>Sinatraのようなもの
ExpressとSinatraは全くの別物だけどなクズw

>>650
正解

>>651は知ったかぶりで嘘教えてるので参考にしないように
653デフォルトの名無しさん:2013/10/02(水) 23:54:57.72
答えられないなら答えるな
まさにそれですね(震え声)
654デフォルトの名無しさん:2013/10/03(木) 00:28:12.48
>>648
まず訊くが、その処理を泥臭く書くことはできる?

泥臭くというのは、ポイントフリーみたいにかっこ良く宣言的に書こうとせず、
if なんかを駆使して手続き的でもいいから、とにかくやりたい処理をそのまま記述できるか。

つまり、引数の l と f を使って、どういう経過を経て最初のJustだけを取り出すか、
その流れが頭に思い描けるかどうか、ということなんだけど。
655デフォルトの名無しさん:2013/10/03(木) 00:43:10.99
>>651
ん?何を言ってんだお前は?
クズみたいな回答してるお前はまじこのスレの恥
さっさと消えろ
656デフォルトの名無しさん:2013/10/03(木) 00:44:25.01
ハーWWWWWWWWW
責任もって嘘教えた>>651はもうこのスレにこないでください
金輪際PHPをかたるのやめてくださいねw

>>653
震え声?
なにびびってんだ?
ガンガンたたけ
657デフォルトの名無しさん:2013/10/03(木) 00:45:03.54
もういいよ
このスレ壊そう
658デフォルトの名無しさん:2013/10/03(木) 00:46:14.18
>>653
知った相手に震えるとかカスだな
お前も同等のゴミ
MVCとかいってる情報乞食も同等の雑魚
659デフォルトの名無しさん:2013/10/03(木) 00:46:55.95
やだよ
何一人で決めちゃってんの?
660デフォルトの名無しさん:2013/10/03(木) 00:50:50.66
っとなげくクズでした
661デフォルトの名無しさん:2013/10/03(木) 01:04:05.37
Haskellerの欠点は
プライド高い奴が多すぎて
チームプレーが出来ない所
662デフォルトの名無しさん:2013/10/03(木) 01:06:24.96
っと天才肌の一匹狼に憧れるクズであった
663デフォルトの名無しさん:2013/10/03(木) 01:10:56.97
Haskell初めて数ヶ月たつのですが
まだまだ使い慣れていません
オーダーは間違っていないと思うんですが
作業終盤にあたって盛り返すことができずやられてしまいます
どうすればいいんでしょうか?
やっぱりバフはくるのでしょうか?
不安です
朝鮮鯖でプレーしていますが
自分はマイクロ操作に自信があるのですが・・・それでも未だにプラチナ昇格できません
勝つ方法教えてください
664デフォルトの名無しさん:2013/10/03(木) 01:13:45.00
>>663
下手糞noobはきえろ
アインストールしろクズw
何で負けてるのにやるの?Mなの?気持ち悪いよ

>>658
情報乞食ってゆうけど
ここも教えて君ばっかりになっちゃったね(^^;
なんてゆーか荒らしばっかり
まともに会話すらできないもん
665デフォルトの名無しさん:2013/10/03(木) 01:14:28.43
もうやめて!!!
前のHaskellスレに戻って!!!
666デフォルトの名無しさん:2013/10/03(木) 01:15:30.02
戻りません
667デフォルトの名無しさん:2013/10/03(木) 01:40:34.05
スルー推奨
668デフォルトの名無しさん:2013/10/03(木) 01:41:50.88
>>663
開始3分裏小屋からのエジ鎌ラッシュ。これで勝つる
669デフォルトの名無しさん:2013/10/03(木) 02:11:52.87
>>668
おっ こんな所でRoRが出てくるとは思わなんだ
670デフォルトの名無しさん:2013/10/03(木) 08:48:08.58
>>654
ありがとうございます
f :: [Int] -> IO [Int]
f (x:xs) = ..
case r of
[] -> f xs
r -> [r]
のように f を再帰で書き直せばできます
671デフォルトの名無しさん:2013/10/03(木) 10:01:59.98
rを計算する部分だけを切り出した g :: Int -> Maybe Int を作って takeWhile すればよくね?
672デフォルトの名無しさん:2013/10/03(木) 10:26:44.48
Haskellは結局、かけた時間が最も大事。ただ、時間をかければいいってものではなく、ちゃんと意味のある時間のかけ方をしないとダメ。
密度の濃い時間にするというか。
RPGなんかと違って、たたかうを選んでればレベルが上がるわけではないので
673デフォルトの名無しさん:2013/10/03(木) 10:28:06.01
>>668>>663
ゲームッカスは消えろ


>>672
Haskellなんてのは有り体に言って戦争なんだから、 場に出してるお互いのカードに文句を言う意味はない。
相手のカードが揃っていないなら虫けらのように潰せばいいだけ。
他にいい方法があればデッキを組み直すだけ。
674デフォルトの名無しさん:2013/10/03(木) 10:28:55.28
Haskellの向き不向きってのを見極めるのが難しい。
というかHaskell自体趣味だからエンジョイ勢は一生気持ちよくなれる選択肢をやっていけば良い。
でも勝ちたい奴はそこを我慢して自分という人間と状況に合った選択肢を選ばなければならない。
これはHaskellをする上で明確に意識しなければいけない
675デフォルトの名無しさん:2013/10/03(木) 10:29:47.05
っとゲームで例えるクズでした(苦笑)
676デフォルトの名無しさん:2013/10/03(木) 10:49:33.38
Haskellってもしかしてファンよりアンチの方が多いんじゃ・・・
677デフォルトの名無しさん:2013/10/03(木) 11:10:53.99
>>670
なんでfを書き換える話になってるんだw

>>648に戻ると、(>>654も言ってるように)リストを前から辿る関数を書きたいなら
愚直に再帰で書けばいい

a648 :: (Int -> IO (Maybe Int)) -> [Int] -> IO (Maybe Int)
a648 f [] = (ここを埋める)
a648 f (x:xs) = (ここを埋める)

これができたら、foldrを使って書き直すのは簡単なので好みで
ただし、それ以上かっこよく書くのは標準ライブラリでは無理だと思う
標準に付け加えるとしたら、
newtype MonadicFind m a = MonadicFind (m (Maybe a))
instance (Monad m) => Monoid (MonadicFund m a) where...
とかかな
678デフォルトの名無しさん:2013/10/03(木) 11:24:45.51
元はリストの先頭から計算結果を返すものだけ評価したいという話なのに
なんでfoldrが出てくるのか理解できないんですけど
679デフォルトの名無しさん:2013/10/03(木) 11:28:08.09
>>663
軸は3つある。
戦闘で勝つこと、欲張ること、相手のワーカーを狩ること。
戦闘で勝つために必要なのは編成とマイクロだ。相手より強い編成を作り、上手く扱えたほうが勝つ。
欲張るために必要なものは、すべてのHaskellが最初から手にしている。
Haskellというのは結局のところ定点防衛力に優れた種族だということである。
Bunkerがある。動けないが序盤に倍のMarineの攻撃を守れる。
Tankがある。シージすると動けないが先にシージしたほうが強い。自陣にいれば先にシージできる。
そうそう攻め切れない。しかしだからといって攻めたら勝てないわけではない。
680デフォルトの名無しさん:2013/10/03(木) 11:28:54.78
>>663

Haskellの考察

ワーカーを狩ればユニットの量が変わってくる。すぐに勝つことはできなくても5分後に勝つことは容易である。
Haskellの防衛力が高いといっても、Haskellの防衛戦力は中々動けないのである。変なところからくるハラスへの対応には手間取りやすい。つまりワーカーを狩る隙がある。
しかし正面からくるユニットにはこの防衛力が多大な働きをする。普通地上からベースへの入り口は一つしかないのだからTankが動けなくても問題はない。
つまり乱暴にいうとハラスで攻めてTankで守るか、欲張ってTankとハラス対策ユニットで守ればいいということである。
もちろん他にもTankを使わずに動きまわるビルドがあったりAirが絡んだりと色々なジャンケンが存在する。重要なのはいかにして編成差を作れるか、内政差を作れるかである。
681663:2013/10/03(木) 11:29:58.57
参考になりました
ありがとうございます
682デフォルトの名無しさん:2013/10/03(木) 11:34:09.06
>>678
リストを前から順番に処理する関数は大抵foldrで書ける
683デフォルトの名無しさん:2013/10/03(木) 11:48:33.14
Control.Monad.Loopsをつかう
684デフォルトの名無しさん:2013/10/03(木) 12:30:40.73
>>682
あの、そういうことじゃないんですよ。
たとえば、sequence の実装は↓のように foldr つかってるんだけど
すべてのmonadicな値を*評価*してしまうんです。

sequence ms = foldr k (return []) ms
where
k m m' = do { x <- m; xs <- m'; return (x:xs) }

>>648の要求は「条件が合ったら以降のリスト要素を評価したくない」といっていて、
あなたの回答は要件を満たせていませんよと言ってるんです。
685デフォルトの名無しさん:2013/10/03(木) 12:49:57.96
へーhaskellのfoldrって前から処理なんだ
686デフォルトの名無しさん:2013/10/03(木) 12:55:59.78
>>684
途中で処理を止めるのも問題なくできるよ
答を書いてしまうと、

a648 :: (Int -> IO (Maybe Int)) -> [Int] -> IO (Maybe Int)
a648 f l = foldr g (return Nothing) l
 where
  g x next = do
   r <- f x
   case r of
    Nothing -> next
    Just v -> return (Just v)

-- てすと
main = a648 f [0..10] >>= print
 where
  f i = do
   print i
   return $ if odd i then Just i else Nothing
687デフォルトの名無しさん:2013/10/03(木) 15:03:14.26
遅延評価は難しいね〜
688デフォルトの名無しさん:2013/10/03(木) 16:53:16.72
私はHaskellを続けるよ
689デフォルトの名無しさん:2013/10/03(木) 17:42:54.96
runMaybeT . foldr mplus mzero . map MaybeT
690デフォルトの名無しさん:2013/10/03(木) 17:44:28.46
おっと、foldr mplus mzero は msum だったか
691677:2013/10/03(木) 17:57:12.47
>>689
それ気づかなかったわ
標準ライブラリでかっこよく書けない云々は間違いだった。すまん
(「標準ライブラリ」の定義が曖昧なのは気にしないことにして)
692デフォルトの名無しさん:2013/10/03(木) 18:49:01.55
Hackage 見たら MaybeT 二つあったし、標準って感じじゃないよな。
モナドになると気づけば、Hackage にあるのは間違いないから探すだけだった。
693デフォルトの名無しさん:2013/10/03(木) 19:17:45.26
transformersはHaskell Platformに入ってるからある意味標準と言って良いと思う
(Haskell2010にはないから、その意味では標準じゃない)
694デフォルトの名無しさん:2013/10/03(木) 19:34:45.70
>>676
そりゃあんだけ型が合わないだのなんだのコンパイラに突っぱねられれば怨みも持つさ

インテリにいびられるストレスと似たものを感じるからね

これを克服するには自分もインテリ気質にならざるを得ない
695デフォルトの名無しさん:2013/10/03(木) 23:29:35.77
ちょっと教えて欲しいんだけど
・遅延評価のメリット
・Haskellで書けるプログラムの範囲
この2点が様々なブログを読んでも抽象的にしか書いてないんだけど
この辺ちゃんと説明してくだちぃ
696デフォルトの名無しさん:2013/10/03(木) 23:58:38.25
>>695
正直、真面目に答えて欲しいのなら真面目に訊いてこい、と言いたい。


それはそれとして、抽象的なのがちゃんとしていないというのなら、
具体例を挙げればいいのか?

・遅延評価のメリット
素直に計算式を書くだけで、余計な計算をしない処理をしてくれる。
例えば画像処理で、画像に回転を施してからトリミングするとする。
Haskell ならこの通りに素直に (trim . rotate) という関数を画像に適用すれば、
トリミングで失われる画素の回転処理は自動的に省かれる。

・Haskellで書けるプログラムの範囲
質問の意図が分からん。
この範囲までだよと言ったら、君はそれ以上の可能性は一切排除してしまうのか?

逆に訊きたいが、Java や C や Python などで書けるプログラムの範囲などはどうなんだ?
697デフォルトの名無しさん:2013/10/04(金) 00:08:30.36
むしろHaskell以外の言語は書けるプログラムの範囲を具体的に定めているのかと聞きたい
698デフォルトの名無しさん:2013/10/04(金) 01:00:54.59
みんなHaskellを特別視してる
クラス委員長のように取っ付きにくいと思って攻め倦ねてる
699デフォルトの名無しさん:2013/10/04(金) 01:06:02.03
>・遅延評価のメリット
たらい回し関数なんかの場合の遅延評価の恩恵は、別にHaskellである必要はなく、
クロージャを備えた言語ならどれでもできる
Haskellならではといえば、ループをリスト処理に簡単に落とし込めるということかな
逐次IO処理をリスト処理で行えるのは思考とコードの節約にもなり、高アドバンテージ

>・Haskellで書けるプログラムの範囲
チューリング完全な以上、どの高級言語も同じ範囲に収まっている
対象の分野に対して記述しやすく実行効率の良い言語を選ぶしかない
なんでもかんでもHaskellで書こうというのは我慢フェチの変態オナニー
700デフォルトの名無しさん:2013/10/04(金) 03:53:39.34
>>698
それです

>>699
あー、すごいわかりやすい、やはり言語ごとの得手不得手で使い分けですね
逐次IO処理ってForeachループ内の処理を共通メソッド化できるって考えですかね?
だとしたら無名関数便利だからJavascriptやラムダ式が便利ってのと何が違うんですかね
701デフォルトの名無しさん:2013/10/04(金) 05:53:38.68
もちろん言語は適材適所で使い分けなんだけど、
Haskellに関しては得手不得手がそこまではっきりしてないので、
「なんでもかんでもHaskellで書こう」という奴が多いように見えるかも
個人的には、「PCで動くプログラムはOSとゲーム以外全部Haskellで書く」
くらいの選択はおかしくないと思う
702デフォルトの名無しさん:2013/10/04(金) 07:28:19.50
>>696 の意見はスルーか

何度やられても、この寂しさには慣れん・・・
703デフォルトの名無しさん:2013/10/04(金) 07:40:48.98
>>702
態度が説教臭い上に挙げてる例が非現実的だからだろ
ピクセル単位で評価を遅延してたらオーバーヘッドがきつ過ぎで使いものにならん

構って欲しいならセックスでも配信してりゃいいんじゃね
704デフォルトの名無しさん:2013/10/04(金) 07:46:17.18
遅延評価の利点ってそんなにないと思う
強いて挙げるなら>>699の言ってる遅延リストとか、あとはDSLで再帰的な定義が書けるとか

後者の例は、たとえば文字列から式を読むパーサを書く場合、
parseExpr :: Parser Expr
parseExpr = (IntE <$> parseInt) <|> (string "(" <* parseExpr *> string ")") <|> ...
みたいに(細部は適当)書きたいんだけど、
遅延評価でなければparseExprが無限再帰を起こす
705デフォルトの名無しさん:2013/10/04(金) 08:46:07.76
なるべくimmutableなデータを使うことで
プログラムの見通しが良くなるのが関数型のメリットなんだけど

例えばリストがimmutableだと、mapを実装するときに正格評価では
末尾再帰にしないとスタックオーバーフローする可能性があるし、
末尾再帰にすると最後にreverseが必要な実装になっちゃうんだよね
でも遅延評価だとそれが無いのがメリット
706デフォルトの名無しさん:2013/10/04(金) 09:23:50.48
デフォルトで遅延評価でないような実装(eager haskell)でも遅延評価を扱う仕組みは用意されているんだろうな
707デフォルトの名無しさん:2013/10/04(金) 12:38:50.03
>>703
Repa でピクセル単位で画像処理しているのだが
708デフォルトの名無しさん:2013/10/04(金) 12:43:59.63
>702 :デフォルトの名無しさん:2013/10/04(金) 07:28:19.50
>俺 >>696 の意見はスルーか
>何度やられても、この寂しさには慣れん・・・

こういうクズにはクズのレスの1個前、1個後にレスつけて
クズがスルーされてる感を出すのが効くんだよなぁww

クズの書き込みIDが696だったら すぐさま自作自演で695と697へアンカw
それにはさまれたクズの書き込みはアンカがついてないのでスルーされている(笑)

これがめちゃくちゃ効く(笑)
709デフォルトの名無しさん:2013/10/04(金) 12:45:09.27
>>708
何でそんな心に響く書き込みできるの?
何で?
710デフォルトの名無しさん:2013/10/04(金) 12:46:37.90
>>702
あなたのようなレス乞食は社会から必要とされてない
お亡くなりください

>>708
それやるとそいつの書き込みだけ惨めに見えますね
711デフォルトの名無しさん:2013/10/04(金) 12:48:44.30
>>708
四面楚歌スルーと命名しよう
サンドイッチスルーでもいいですね
いじめスルーですか?
もっといい名前ありますか?
孤立スルー
712デフォルトの名無しさん:2013/10/04(金) 13:50:04.61
今日からLeksahでハスケります
よろしくお願いしますm(_ _)m
713700:2013/10/04(金) 13:51:04.75
>>712です
714デフォルトの名無しさん:2013/10/04(金) 14:06:00.44
>>711
他にネーミングないか?
>>710
だなレス乞食みたいなクズはこのスレにいらない
早急西ねってかんじだな
715デフォルトの名無しさん:2013/10/04(金) 14:08:21.33
>>711
ん?いじめでよくねw

>>714
まあそうカッカするな
コリアンかもしれないしな
スンドウゥブはうまいけどコリアンハスカーはいただけないぜ
716デフォルトの名無しさん:2013/10/04(金) 14:10:00.15
このスレ機能してねーじゃん
どうしたんだよ
717デフォルトの名無しさん:2013/10/04(金) 17:40:42.04
>>714
シケイン(スルー)
718デフォルトの名無しさん:2013/10/04(金) 19:57:03.46
ブッコワレケル!!
719デフォルトの名無しさん:2013/10/04(金) 23:04:53.10
(a, b, c, d) <- (,,,) <$> newIORef [] <*> newIORef [] <*> newIORef [] <*> newIORef []
これって fold と replicate 4 (new IORef []) で書ける?
720デフォルトの名無しさん:2013/10/04(金) 23:28:07.92
>>707
Repa って並列で実行とかじゃないの?
ピクセル単位で遅延って感じになるの?
721デフォルトの名無しさん:2013/10/04(金) 23:29:56.93
そもそも trim . rotate の遅延って怪しいけど
722デフォルトの名無しさん:2013/10/05(土) 00:21:36.88
Amazonで Haskell で洋書検索したらアダルト商品ばっかりで吹いた
723デフォルトの名無しさん:2013/10/05(土) 00:29:29.72
>>722
いや・・・出た事無いけど・・・。
普段から検索してる物で検索結果が変わったりするんだろうか・・・
724デフォルトの名無しさん:2013/10/05(土) 00:38:33.68
725デフォルトの名無しさん:2013/10/05(土) 01:06:19.39
女だ!2chに女が出たぞー!焼き払えー!
726デフォルトの名無しさん:2013/10/05(土) 02:44:21.78
どうやら Spencer Haskell さんというエロ小説家がいるようだ
727デフォルトの名無しさん:2013/10/05(土) 03:52:38.15
ファイルのMD5ハッシュ値を取り扱うライブラリを推薦してください
728デフォルトの名無しさん:2013/10/05(土) 06:54:17.61
>>719
[a,b,c,d] <- replicateM 4 (newIORef [])

-- Control.Monadのソースから
replicateM n x = sequence (replicate n x)
sequence ms = foldr k (return []) ms
where k m m' = do { x <- m; xs <- m'; return (x:xs) }
729デフォルトの名無しさん:2013/10/05(土) 07:57:35.49
>>724
普段エロばかり検索してるんだからもう
…というわけではなくソート順を「出版年数が新しい順番」にすればうちでもなるよ
730デフォルトの名無しさん:2013/10/05(土) 09:34:18.29
>>728
ありがとう
確かにタプルに拘る理由は無かった
731デフォルトの名無しさん:2013/10/05(土) 12:55:47.35
すごいH
732デフォルトの名無しさん:2013/10/05(土) 18:05:23.42
はっかったっのっ
733デフォルトの名無しさん:2013/10/06(日) 01:34:23.60
PHPとかWEBプログラミングやってる人スカイプしてくれ
色々教えてくれ
treesnake2ですじゃあよろしく
734デフォルトの名無しさん:2013/10/06(日) 01:35:04.28
>>733
友達になりましょう
735デフォルトの名無しさん:2013/10/06(日) 01:38:29.21
教えがいがありますね
736デフォルトの名無しさん:2013/10/06(日) 17:42:31.35
>>733
コンタクト送りました
737デフォルトの名無しさん:2013/10/06(日) 17:43:34.02
>>733
ん?いちいちここで募集するな
わかったか
LINEで募集かけてこいやキチガイ
738デフォルトの名無しさん:2013/10/06(日) 17:46:01.69
駅員「乗車券とかはお餅ですか?」
733「いえ、ちがいます」
駅員「いや、ちがうじゃなくて、お餅じゃないんですか?」
ぼく「酢イカはあるけどお餅じゃないです」
駅員「お餅の酢イカは残高不足ですが、
お金があればお餅の酢イカにチャージできますよ」
733「すっぱそうですね」
駅員「お金はお餅ですか?」
733「ちがいます」
駅員「えっ」
733「えっ」
駅員「はぁ?お金もお餅じゃないのですか?」
733「あたりまえじゃないですか」
駅員「ちょっとこい」
739デフォルトの名無しさん:2013/10/06(日) 19:02:23.55
ぼく「酢イカはあるけどお餅じゃないです」

これ何なの?
740デフォルトの名無しさん:2013/10/06(日) 19:13:54.67
酢イカ is not equal お餅
741デフォルトの名無しさん:2013/10/06(日) 21:41:08.46
is not equal toな
742デフォルトの名無しさん:2013/10/06(日) 23:39:46.15
doesn't equal
743デフォルトの名無しさん:2013/10/07(月) 00:01:17.15
そういうことじゃなくて、

ぼく「酢イカはあるけどお餅じゃないです」

これだけ取ってつけた感じでわざとらしい
言い回しも変だし

この「ぼく」は何を勘違いしたらこのセリフが自然に出てくる?
744デフォルトの名無しさん:2013/10/07(月) 00:20:06.00
気にするな
Haskellできない奴が頑張って作ったんだ
なぜここに貼ったのかわからないし
元ネタのコピペに全然追いつけてないけど
それでも誰かが頑張って作ったものではあるんだ
745デフォルトの名無しさん:2013/10/07(月) 09:35:10.68
>>743はICOCA圏在住
746デフォルトの名無しさん:2013/10/07(月) 09:38:33.09
move743 :: ICOCA a -> ICOCA a
747デフォルトの名無しさん:2013/10/07(月) 09:48:22.67
記者の眼 - Haskell使いの高頻度取引の会社にお邪魔した:ITpro
http://itpro.nikkeibp.co.jp/article/Watcher/20131003/508622/
748デフォルトの名無しさん:2013/10/07(月) 12:07:38.58
ここがcamlspotterさんの会社?
749デフォルトの名無しさん:2013/10/07(月) 12:25:45.86
きゃみば様はスタンダードチャターズ
鶴はmaoeさんとあと一人は忘れた
750デフォルトの名無しさん:2013/10/07(月) 12:26:23.95
スタンダードチャータード
751デフォルトの名無しさん:2013/10/07(月) 16:42:29.88
>>747
華やかそうでええのう・・・。

というか、優秀な外国人がどこでも出来る仕事をわざわざ日本にきて
やってることに驚いたw
752デフォルトの名無しさん:2013/10/07(月) 17:37:20.14
Haskellって実社会で役に立ってんの?
753デフォルトの名無しさん:2013/10/07(月) 18:06:52.86
さぁね (・∀・)ニヤニヤ
754デフォルトの名無しさん:2013/10/07(月) 19:29:25.68
2+2=5
755デフォルトの名無しさん:2013/10/07(月) 22:17:19.03
スレが水虫になった気分
756デフォルトの名無しさん:2013/10/08(火) 02:04:18.43
実社会で役に立ってるのは体育会系のリーマンだけです
757デフォルトの名無しさん:2013/10/08(火) 02:26:19.55
ここでいう実社会ってRealWorldのことですか?
758デフォルトの名無しさん:2013/10/08(火) 17:20:55.82
--enable-executable-profiling と -p とにはどのような関わりがありますか?
759デフォルトの名無しさん:2013/10/08(火) 18:17:12.71
760デフォルトの名無しさん:2013/10/08(火) 20:43:30.32
いろいろツッコミどころはあるけど
とりあえずNikki and the Robotsを挙げろや
761デフォルトの名無しさん:2013/10/08(火) 20:52:58.99
>>759
上の2つはグラボのパワー使ってるの知らないのかな。
762デフォルトの名無しさん:2013/10/08(火) 21:43:14.85
Haskellの皆さんにお聞きします
株を買おうと思うんですが
ここヤバいよ!っていう株教えてください
763デフォルトの名無しさん:2013/10/08(火) 21:51:40.65
ミクシィとかグリーなんかが順調にヤバいよ
764デフォルトの名無しさん:2013/10/08(火) 22:10:45.45
社会インフラのコードの「ソースコード」のほとんどがアセンブラな件
765デフォルトの名無しさん:2013/10/08(火) 23:33:40.92
なにそれ、怖い
金融とかトレーディングとか?
766デフォルトの名無しさん:2013/10/09(水) 01:13:39.23
道路の信号と鉄道とATM

飛行機はアセンブラ埋め込んだ高級言語
今で言うDSL
767デフォルトの名無しさん:2013/10/09(水) 01:43:12.88
超・高信頼性が要求される仕事では、技術者の確保が難しい言語や仕様自体にバグがある言語や成長の途中であると公言するような言語は使えない
となると、Cかアセンブラだけというオチ
COBOLももう怪しい
768デフォルトの名無しさん:2013/10/09(水) 05:43:21.81
Haskellで遊んでみたいけど探してもまったく案件ないんだよな
769デフォルトの名無しさん:2013/10/09(水) 09:53:08.13
>>768
Haskellで言語コンバータ作ればいいじゃん。
770デフォルトの名無しさん:2013/10/09(水) 11:43:07.53
C++の限界
(p)http://www.digitaltrends.com/wp-content/uploads/2013/02/gtav.jpg

C#の限界
(p)http://www.stfuandplay.com/images/uploads/GunsIO-TOP.jpg

Haskellの限界
(p)http://www.geocities.jp/takascience/haskell/monadius03.png


>上の2つはグラボのパワー使ってるの知らないのかな。
くやしいのうw そうやって"できない理由"を探して永久に慰め続けろよ。
771デフォルトの名無しさん:2013/10/09(水) 11:49:28.14
あるから・・・Haskellにも3Dゲームあるから(震え声

http://www.haskell.org/wikiupload/c/c2/Frag1.png
772デフォルトの名無しさん:2013/10/09(水) 13:39:21.18
> くやしいのうw そうやって"できない理由"を探して永久に慰め続けろよ。

自分の成果で語れよw
773デフォルトの名無しさん:2013/10/09(水) 13:51:10.16
774デフォルトの名無しさん:2013/10/09(水) 14:05:53.47
Haskellってこんなもんなんだ
775デフォルトの名無しさん:2013/10/09(水) 14:59:11.53
なんのネタ
776デフォルトの名無しさん:2013/10/09(水) 16:34:14.89
限界がある時点でゴミ
777デフォルトの名無しさん:2013/10/09(水) 20:03:26.26
あの、チューリングマシン っていうのは……
えっと……
778デフォルトの名無しさん:2013/10/09(水) 20:25:14.58
つまりさ、フレームワーク無しで一からフルスクラッチできるPGなんて日本にどれだけいるのっと
779デフォルトの名無しさん:2013/10/09(水) 20:44:42.51
フルスクラッチで何作るのさ?
780デフォルトの名無しさん:2013/10/09(水) 20:47:07.02
1/1スケールのすごいぞうさん(日本版)
781デフォルトの名無しさん:2013/10/09(水) 21:49:27.27
実用とか気にし過ぎ

おもちゃとしてもっと気楽に楽しくハスケればいいのに
782デフォルトの名無しさん:2013/10/09(水) 23:35:39.61
>>777
チューリングマシンが〜ってのは、人間がコーディングするという前提を無視した空想上のお話
オカルト
783デフォルトの名無しさん:2013/10/09(水) 23:47:46.54
>>770
体育会系根性論でGPU有無の差をぶちやぶれると思ってる脳筋はどっかいけよ。
784デフォルトの名無しさん:2013/10/10(木) 00:32:43.14
っとわめくモヤシでした
785デフォルトの名無しさん:2013/10/10(木) 00:46:09.59
>>783
現実社会では、体育会系がコネと元気と礼儀正しさでGPU有無の差をぶちやぶっています
786デフォルトの名無しさん:2013/10/10(木) 01:00:01.40
GPU で Haskell 作ればいいんじゃね
787デフォルトの名無しさん:2013/10/10(木) 01:26:47.78
>>782
>>776-777
限界があると言うならそもそもチューリングマシンに限界があるという話でな
788デフォルトの名無しさん:2013/10/10(木) 01:27:52.73
java詳しい人いますか?
いたら至急連絡先教えてください
789デフォルトの名無しさん:2013/10/10(木) 01:34:42.22
教えて君は帰れキチガイ
790デフォルトの名無しさん:2013/10/10(木) 03:07:16.04
>>787
無限のテープを持つことが可能なチューリングマシンモデルに限界がなくても、有限の資産と有限の時間で人間がプログラミングするという現実世界では限界がある

テープの1文字100円で会社の社長が首つらない範囲という条件をつければ、チューリングマシンはC言語のコンパイルすら実現不可能
791デフォルトの名無しさん:2013/10/10(木) 04:21:44.46
テープの1文字0円という条件では会社の社長はどうなるのでしょうか?
792デフォルトの名無しさん:2013/10/10(木) 06:02:42.14
safeハスケルって7.2.1から導入された規格はアンセーフ関数フリーの表明ですか?
793デフォルトの名無しさん:2013/10/10(木) 06:12:56.33
>>790
何この人……文盲……
794デフォルトの名無しさん:2013/10/10(木) 06:16:15.63
無限のテープを持つことが可能なチューリングマシンモデルに限界はない(キリッ)
795デフォルトの名無しさん:2013/10/10(木) 07:16:04.38
>>790,794
なんか一見分かったようなこと言ってるけど意味不明
796デフォルトの名無しさん:2013/10/10(木) 09:20:57.83
このスレはそんなんばっかだから
797デフォルトの名無しさん:2013/10/10(木) 10:27:09.00
最近バカが暴れてるだけだろ。しばらく放置。
798デフォルトの名無しさん:2013/10/10(木) 11:55:04.36
バカコンプだから知的層を演じるバカが797
799デフォルトの名無しさん:2013/10/10(木) 12:47:41.49
自己紹介乙
800デフォルトの名無しさん:2013/10/10(木) 16:02:41.73
x86のMMUもチューリング完全だから限界がないね!
801デフォルトの名無しさん:2013/10/10(木) 17:04:59.43
衒学的虚レスはいいから実のある話をしろ
802デフォルトの名無しさん:2013/10/10(木) 18:42:54.87
チューリング完全ってのは計算手順の表現能力の話であって、
それを具体的な処理系でどういう処理を行うかってのはチューリング完全とは全く関係ない話なんだが

簡単に言えば「手順書」の内容についてはあらゆるプログラミング言語が同等な表現力を持っているが、
手順書を受け取って処理を行う側(処理系)についてはチューリング完全とは関係ない
803デフォルトの名無しさん:2013/10/10(木) 19:15:21.89
誰もチューリング完全の話なんてしてないのに唐突に何いってんだこいつ
804デフォルトの名無しさん:2013/10/10(木) 19:21:44.65
802の優勝
805デフォルトの名無しさん:2013/10/10(木) 19:45:07.03
>>759
一連の流れをつくった書き込み 60点

>>762
30点

>>770
続きそうにない話を引っ張る この頑張りが後につながる 75点

>>776
60点

>>777
この書き込みが住人に火をつけた 85点

>>802
書き込む内容、タイミング、もっともらしい話し方
全てにおいて素晴らしい 100点
806デフォルトの名無しさん:2013/10/10(木) 20:19:12.52
>>804
確かにレベル高いわw
ある意味圧勝w
807デフォルトの名無しさん:2013/10/10(木) 21:28:26.91
実行速度や開発効率や周辺ライブラリの整備状況やゲーム用フレームワークの話にならず
チューリングマシンどうこう言い出すのがこのスレらしいわ
808デフォルトの名無しさん:2013/10/10(木) 21:36:06.08
>実行速度や開発効率や周辺ライブラリの整備状況やゲーム用フレームワークの話にならず
全部まとめて限界があるものはゴミ、で片付けられたから……(震え)
809デフォルトの名無しさん:2013/10/10(木) 21:56:04.85
ドカタ向けの話題と専門家向けの話題があるからね
810デフォルトの名無しさん:2013/10/10(木) 22:44:31.94
>>802
その同等さを保証するために、無限のテープという前提が必要
811デフォルトの名無しさん:2013/10/10(木) 23:09:37.34
ひとり「無限のテープ」に拘ってる香具師がいるみたいだけど
まったく的外れな持ち出し方をするからすぐに分かるな
812デフォルトの名無しさん:2013/10/11(金) 00:28:36.58
>>811
チューリングマシンモデルからみた言語の同値性ではなく、表面に見える文法にこだわらなければならない理由が、そこにあるから
813デフォルトの名無しさん:2013/10/11(金) 02:07:05.53
正しいことを言ってるつもりなのかもしれないが致命的に話の流れが見えてない
お薬出しておきますね
814デフォルトの名無しさん:2013/10/11(金) 02:38:20.06
環境は、人間という機械に文法を定着させることまでを含む
演算には現実社会の資源が必要であり、その資源は有限である
演算には時間が必要であり、コーディングと実行を終了するまでに与えられる時間は有限である
問題を解くのに必要な資源と時間があることは保証されていない

言語が受理できる問題のクラスは、既存のコンピュータ言語間で明らかに異なる
815デフォルトの名無しさん:2013/10/11(金) 03:16:44.12
俺のPCはノイマン型コンピュータだしwwwwwwwwwwwwwwwwwwwwwwwww
チューリングマシンとかだせえwwwwwwwwwwwwwwwwwwww
816デフォルトの名無しさん:2013/10/11(金) 03:41:46.23
Data.Text ライブラリのビルド時間かかりすぎワロタwwwwwww
41工程が半日経っても済んでないwwwwwwww
817デフォルトの名無しさん:2013/10/11(金) 04:53:52.13
suffix arrayをhaskellで自作する場合どんな手段がありますか?
モナドに浸さない感じでお願いしますm(_ _)m
818デフォルトの名無しさん:2013/10/11(金) 04:54:04.74
チューリング完全かどうかなんて、プログラミング言語として最低限の条件は満たしましたyoという話で、自慢にもなんにもならない。
819デフォルトの名無しさん:2013/10/11(金) 09:07:45.95
チューリング完全を”実用的な”プログラミングの必要十分条件と誤解している人が多いね
単に必要条件の一つに過ぎないのに
820デフォルトの名無しさん:2013/10/11(金) 10:26:18.28
ていうか、これだけでも万能なんだぞw

ttp://www.wolframscience.com/prizes/tm23/solved.html
821デフォルトの名無しさん:2013/10/11(金) 11:11:21.09
>>773
LambdaCube 3D (Haskell rendering engine)
https://www.youtube.com/watch?v=JleoASegUlk
822デフォルトの名無しさん:2013/10/11(金) 21:15:33.24
>>819
必要条件ということはチューリング完全でなければ実用的なプログラミングはできないということ?

チューリング不完全な言語だと実用的なプログラミングする上で何がまずい?
823デフォルトの名無しさん:2013/10/12(土) 00:05:16.17
>>822
チューリング完全は実はものすごく規模が大きい
計算可能性が問題になる場面以外では問題にする必要はない
824デフォルトの名無しさん:2013/10/12(土) 00:21:21.87
>>817について誰か(´・ω・`)
825デフォルトの名無しさん:2013/10/12(土) 00:48:50.76
>>824
suffixArray :: [a] -> [[a]]
suffixArray xs = map (\ i -> drop i xs) [0..(length xs) - 1]

これでどやろか。
826デフォルトの名無しさん:2013/10/12(土) 00:56:14.55
sort . tails とのちがいをくわしく
827デフォルトの名無しさん:2013/10/12(土) 01:43:53.47
>>825
どうもありがとう。でもリストって遅くないですか?(´・ω・`)
hsファイル一つで動く感じがよかったんですけど大人しくライブラリを探しますネ(´・ω・`)
828デフォルトの名無しさん:2013/10/12(土) 03:41:20.74
haskellの連結リストは遅延評価のおかげか思ったより速い
829デフォルトの名無しさん:2013/10/12(土) 07:24:26.38
遅延評価のおかげで処理を省略できるような場合以外は普通に遅いよ
830デフォルトの名無しさん:2013/10/12(土) 07:46:16.40
普通は正格版のVector使うわな
831デフォルトの名無しさん:2013/10/12(土) 07:54:34.18
Textライブラリのビルドまだ終わってないワラタww
832デフォルトの名無しさん:2013/10/12(土) 11:57:13.88
haskellが得意だと言ったら、「こいつ、できる…」という尊敬の眼差しで接されるようになった
833デフォルトの名無しさん:2013/10/12(土) 14:37:38.56
>>831
いくら何でも嘘だろw
834デフォルトの名無しさん:2013/10/12(土) 17:30:38.51
素人っぽいしょぼいフリーウェアばかりとはいえ、
アプリが出てきたってのは関数型言語としては画期的だな。
835デフォルトの名無しさん:2013/10/12(土) 17:43:27.49
Darcsは玄人のフリーウェアアプリかな
836デフォルトの名無しさん:2013/10/12(土) 23:16:44.31
今更ながら気づいた

Haskellってスクリプト言語としてもけっこう使えるね
837デフォルトの名無しさん:2013/10/13(日) 01:58:25.07
むしろ、スクリプト言語としてしか使えない
838デフォルトの名無しさん:2013/10/13(日) 02:32:03.06
gtk とか qt とかに依存しない、
xlib だけを使ったような GUI がほしい。

見た目 simple で、立体感とかいらないから。

できたら、reactive で、日本語対応で…

ちょっとバージョン変わると、コンパイル通らないとか、めんどい。

Python の tkinter よりか、ちょっと、かっこいい感じがいいな
839デフォルトの名無しさん:2013/10/13(日) 02:39:40.44
仕事まったくないけどみんな趣味でやってんの?
840デフォルトの名無しさん:2013/10/13(日) 07:21:43.39
Textライブラリのビルドやっと38/41まできたワラタwwww
プロセスの9割はガベコレしてるっぽいwwwwww
841デフォルトの名無しさん:2013/10/13(日) 08:39:11.31
842デフォルトの名無しさん:2013/10/13(日) 09:32:40.50
Textライブラリとか雑魚だろ
qt-haskellをドキュメント作成enableでcabal installしたら600とかいくしメモリ使用量も6G超える
843デフォルトの名無しさん:2013/10/13(日) 09:44:17.77
Haskellってフリーソフト作成には全く使われないし、学術計算でも他の言語が幅を利かせているし

CASLみたいに議論のための言語ってイメージしかない。
844デフォルトの名無しさん:2013/10/13(日) 10:40:04.02
>>843
「計算」は代数だけじゃ無いから。
845デフォルトの名無しさん:2013/10/13(日) 10:49:37.13
>>843
研究や実験結果が他言語に生かされているということで、
その議論が役立ってるのだから、もうそれで十分実用だよ。

フリーソフト作成とか商用アプリとかで使われるなんてのは、単なる余興だ。
846デフォルトの名無しさん:2013/10/13(日) 13:56:54.11
>>845
>研究や実験結果が他言語に生かされている
・・・長期の投資

>フリーソフト作成とか商用アプリとかで使われる
・・・短期の投資

長期・短期が互いに貢献しあう利用法を出来る組織が伸びる。
847デフォルトの名無しさん:2013/10/13(日) 16:21:01.21
Haskellを研究用言語だと思いたがってる奴がいるな
848デフォルトの名無しさん:2013/10/13(日) 17:15:55.76
>>847
むしろ、ガチガチの研究学術用言語として位置付けて、実用に妥協した仕様変更をしないでほしいです
849デフォルトの名無しさん:2013/10/13(日) 17:33:06.00
どのへんが妥協してると思うのか述べよ
850デフォルトの名無しさん:2013/10/13(日) 17:40:41.07
>>849
プラグマ
851デフォルトの名無しさん:2013/10/13(日) 17:46:21.47
>>849
seq、テンプレートhaskell
852デフォルトの名無しさん:2013/10/13(日) 17:54:46.38
>>848
それは無理、もともと実用を目指して作られた言語だ。
今もその流れは止まっていないし、「しないでほしいです」なんて
理由も根拠も示さない個人の感情で止められるわけがない。

Haskellは諦めて他のガチガチの研究学術用言語とやらを探すか、自分で作ってくれ。
853デフォルトの名無しさん:2013/10/13(日) 18:07:56.45
もし自分で作り直すなら、実用に走った部分を削除して、Haskell- を作ってほしい
lispに対するschemeみたいな感じで

MLやmirandaよりもhaskellのスタイルの方が好きなので
854デフォルトの名無しさん:2013/10/13(日) 19:13:51.15
Haskellのインデントスタイルが微妙にわからない
Pythonみたいにガチガチでもなくセミコロンとかで区切るでもなくて
855デフォルトの名無しさん:2013/10/13(日) 19:25:21.83
>>854
・do, of, where, letの四つの予約語が特別扱いされてる
・上記の予約語の後が{でない場合、インデントに従って{;}が補われる
の二点を押さえれば分かり易いと思う
856デフォルトの名無しさん:2013/10/13(日) 19:37:56.90
C++
H--
857デフォルトの名無しさん:2013/10/13(日) 19:39:29.31
ハスケナイとか
858デフォルトの名無しさん:2013/10/13(日) 19:41:46.44
>>851
seqがあるせいで理論的に汚くなってる(パラメトリシティが制限されるとか)ってのは分かるけど、
THが何か問題起こしてるか?
859デフォルトの名無しさん:2013/10/13(日) 19:58:25.85
>>858
論文に書くときに、数理的に上手に記述できない
(記述しようとすると、コード生成コードなので抽象度が上がって、論文上の見た目とコード上の見た目が大きく異なってしまう)
860デフォルトの名無しさん:2013/10/13(日) 20:30:04.63
なんかずっとROMってたけど、どっちみち国内じゃ大学や企業の研究室でしかお金にならないっぽいね
やっぱそれが関数言語の限界なのかなー
861デフォルトの名無しさん:2013/10/13(日) 20:34:08.59
ドカタには敷居が高いからねー
862デフォルトの名無しさん:2013/10/13(日) 20:41:33.09
お金にならないんじゃ広まらないでしょ、フランス語みたいにエグゼクティブな人達だけで楽しみたいんなら先は見えてるよね
863デフォルトの名無しさん:2013/10/13(日) 20:43:35.86
Haskell使ってる、高額年棒が欲しいなら、英語もできた方がいい。
864デフォルトの名無しさん:2013/10/13(日) 20:46:01.39
Scalaに関してはTwitterとか大手でバックエンドに採用される例も散見されるが、
これはJavaの資産が使えるのが評価されて選ばれてるだけだろうし。

今後関数型言語が流行ったとしても主に使われるのはScalaやF#で、
LispやHaskellが流行ることはないだろうな。
865デフォルトの名無しさん:2013/10/13(日) 20:51:00.79
GitHubがRuby捨ててC#ですからな
敷居の低さってなにも技術的なことだけじゃなくて、それを覚える学習コストをペイできるのかって話でもあると思うんだよ
866デフォルトの名無しさん:2013/10/13(日) 21:05:05.50
(あれは釣りというかガセです)
867デフォルトの名無しさん:2013/10/13(日) 21:08:44.53
IT速報ソースで語っちゃうおとこのひとって…
868デフォルトの名無しさん:2013/10/13(日) 21:13:04.60
日本はソフトウェア開発のレベルが低いから。
869デフォルトの名無しさん:2013/10/13(日) 21:20:43.73
ユーザーのレベルも低い
870デフォルトの名無しさん:2013/10/13(日) 21:41:12.42
まあ、Haskell程度すら使いこなせず
こんなスレで愚痴をこぼす低能ですからね
871デフォルトの名無しさん:2013/10/13(日) 22:01:42.21
emacs の haskell-mode を入れ替えようと思ったら、git使ってコンパイルする形になってた
どこかにコンパイル済みのhaskell-modeないですかね?
872デフォルトの名無しさん:2013/10/13(日) 22:31:08.93
結局今ハスケル勉強する意味ってなにがあるの?
ハスケルでないと出来ないことってあるの?
873デフォルトの名無しさん:2013/10/13(日) 22:35:01.17
身構えて勉強しないとプログラミング言語一つ使えない低能は
最初から対象外なんですよね……
874デフォルトの名無しさん:2013/10/13(日) 23:48:59.68
>>872
アクティブな奴はとっくに手を動かしてる。
万人向けの答えをここで聞こうとする者には不要だから心配するな。
875デフォルトの名無しさん:2013/10/14(月) 00:35:38.14
情報科学系の教育では近年MLを教えることが多いが、Haskellも説明しやすくなってる気がする。
http://gihyo.jp/magazine/wdpress/archive/2012/vol67
Java使う場合でも関数型の考え方は習得しておくと、設計しやすくなるし、scalaやclojure使う場合にも純粋な関数型をやった方がいいという人も多い。
876デフォルトの名無しさん:2013/10/14(月) 02:07:13.34
レベルが低いんじゃなくてNTT Dataを頂点としたIT派遣の搾取モデルを破壊しないとスタートアップなんて産まれないんだよ
才能あっても金がないんじゃどうしようもないだろ、MixiやGREEなんかがドヤ顔してた or してる時点で国内のソフトウェア産業なんて高が知れるんだよ
877デフォルトの名無しさん:2013/10/14(月) 02:52:34.04
>>875
昔、関数型言語が流行ったときにMLでテキスト作っちゃったから、そのままMLで教えてるのが現状
教員の方にHaskellを教えるのがメンドい
878デフォルトの名無しさん:2013/10/14(月) 03:05:18.60
>>876
無料で複製できる
下層とトップで個人の生産効率が1000倍以上違う

こんなおかしな産業で、他の産業と同じ円で報酬を払ってること自体に問題がある
雇用モデルを議論する以前の問題

昔みたいにソフトをハードとセット販売するモデルはそれなりに合理性があった
879デフォルトの名無しさん:2013/10/14(月) 07:27:15.14
>>878
天才と言われてた登雄大は1日1万行書けるらしいが、BtoCにおけるソフトウェアで重要なのはアイデアであってそういうことじゃないだろ
国内で資本が集まるのって何故かソーシャルみたいな詐欺みたいなのばっかじゃん
国内の投資家のITリテラシーが低過ぎるんだよ、ソフトウェアの価値がわかんない奴等が日本からGoogleやFacebookが産まれないってアホかと
銀行含めて金貸さな過ぎるんだよ
880デフォルトの名無しさん:2013/10/14(月) 08:33:05.05
>>878
>無料で複製できる
>下層とトップで個人の生産効率が1000倍以上違う

昔からある文筆業と大して変わらないと思う。

>>879
短期的に収益が見込めるモノには安心して投資できる。
でも、投資家の問題ではなくプログラマの”アイデアと実行力”
が足りないことが日本のIT産業の弱さだと思う。

ちなみにFacebookを認めるなら、mixiやソーシャルゲームも
認めてあげないと不公平だと思う。

Googleは後発組で、それ以前は国産サーチエンジンもあった。
でも、性能悪いからGoogleに駆逐された。
資金より、技術力の問題だったと思う。
881デフォルトの名無しさん:2013/10/14(月) 09:01:58.04
>>855
なるほどありがとう
882デフォルトの名無しさん:2013/10/14(月) 11:06:05.58
Haskell って、いつのまに次のような書き方できるようになった?
昔からできたっけ?

if a then b
else c

とか

if a then
 b
 else c

とか

if a then
  b
 else
  c

とか
883デフォルトの名無しさん:2013/10/14(月) 15:37:48.86
>>882
>if a then b
>else c
Haskell 2010でこれをdoの中に書いても良いようになった
http://ghc.haskell.org/trac/haskell-prime/ticket/23

あとの二つはHaskell98でもOK
884デフォルトの名無しさん:2013/10/14(月) 15:52:13.38
というか、こんなのできないようになってた理由の方が気になるわ
なんか問題でもあったんかな
885デフォルトの名無しさん:2013/10/14(月) 16:18:57.87
>>884
do
 x <- foo
 if x then b
 else c

原則に従ってセミコロンを補うと、

do { x <- foo; if x then b; else c }

になるので、if式が二つの文に分断されてパースエラーになる
886デフォルトの名無しさん:2013/10/14(月) 17:24:09.80
>>877
SMLofNJだった
再帰思考の洗礼を受け、手続き脳だった俺はカルチャーショックに打ちのめされた
牙がもがれたようで糞ツマランかった
関数型は絵空事だと思った
現実のパフォーマンスの方を向いていない

簡易言語コンパイラを作る実習だった
無味乾燥な作業のようで全く興味もてなかった
単位落とした

卒業後Haskellに出会った
現実と向き合ってるHaskellを見て、酸っぱい葡萄理論を展開して逃げていただけの自分が恥ずかしくなった
だから俺も関数型とまた向き合おうと思った
その時からもう関数型はレストランのパセリや、酢豚のパイナップルじゃなくなったんだ

初めから出会えていればあの時再履修なんてせずに済んだんだ
当時教材にHaskellを選ばなかった教員が憎い
偽物でやる気なんか出るわけないんだから
いやもう人を憎むのはよそう
Haskellに出逢えたんだから
憎むのはSMLofNJだけでいい
887デフォルトの名無しさん:2013/10/14(月) 17:30:41.16
酢豚のパイナップルはおいしいだろ! いい加減にしろ
888デフォルトの名無しさん:2013/10/14(月) 17:35:54.11
ML族ってocamlもhaskellも実用的なライブラリそろったのって5年前ぐらいの話じゃないかな?

http://d.hatena.ne.jp/camlspotter/touch/20130626/1372228771
889デフォルトの名無しさん:2013/10/14(月) 17:38:14.11
授業で教えるのはSMLでいいけど、Haskell、Ocaml、Scala、F#紹介するといいよね!
890デフォルトの名無しさん:2013/10/14(月) 22:52:57.36
>>888
実用が教育用という意味なら、MLは1990年代に揃った
891デフォルトの名無しさん:2013/10/15(火) 02:21:05.81
数値計算か記号処理で従来の言語よりもメリットがあることを示せないと、授業で教えるのは難しい
大学学部レベルでは、Haskellはまだプログラミングのためのプログラミング言語の域を出ていない
892デフォルトの名無しさん:2013/10/15(火) 04:15:37.57
Textライブラリやっと最終工程入ったワラタwwwwww

これからプロファイル版でもう一周あるかと思うとワラタwwwwwww
893デフォルトの名無しさん:2013/10/15(火) 05:52:38.96
プログラミングの本は1000ページを超えないと
大著って気がしない
894デフォルトの名無しさん:2013/10/15(火) 18:26:58.65
デキる漢はプラットフォームでなくコンパイラアップデートの度に入れ直して
必要なライブラリキャバッてるの?
895デフォルトの名無しさん:2013/10/15(火) 19:34:48.19
>>894
64bitコンパイラ使いたかったら、現状それしか無い訳で・・・
896デフォルトの名無しさん:2013/10/15(火) 19:48:26.11
ライブラリ入れ直しはどうにかして欲しいよな

最新GHCダウンロード後に、自分の使用頻度の高いライブラリから
順次バックグラウンドで自動リコンパイルするくらいの優しさは欲しい
897デフォルトの名無しさん:2013/10/15(火) 20:15:26.85
これHaskellで作られてるゲームらしいけど
なにやってるのかわからん

「Slaves to Armok」
www.youtube.com/watch?v=pfaz8tD4HSo
898デフォルトの名無しさん:2013/10/15(火) 20:34:24.74
自作モナドを作っている人いる?
899デフォルトの名無しさん:2013/10/15(火) 20:39:29.26
>>896
gentooにはそれやってくれるプログラムがある(使用頻度までは見ないけど)
他のプラットフォームにもあるかも
900デフォルトの名無しさん:2013/10/15(火) 20:42:42.75
>>897
Dwarf fortressはCとC++で書かれてるらしいよ
http://dubiousquality.blogspot.jp/2007/01/dwarf-fortress-interview-part-two.html
901デフォルトの名無しさん:2013/10/15(火) 21:19:45.13
こんなところでSML/NJの話題が出るとは嬉しい
902デフォルトの名無しさん:2013/10/15(火) 21:36:28.30
>>897
Haskellじゃないぞ
903デフォルトの名無しさん:2013/10/16(水) 03:43:04.91
ghciで
let a = map (+1) [0,undefined]
let b = map (+1) a
b
[2,*** Exception: Prelude.undefined

リストから値を取り出すのも遅延されて一回になるんでしょうか
904903:2013/10/16(水) 03:54:46.01
頭から中身を評価するだけか
905903:2013/10/16(水) 04:36:15.34
reverse $ reverse [1..10000000000000000000000000000]
printが評価済みの部分を表示するだけか
ありがとうございました
906903:2013/10/16(水) 04:48:31.43
やっぱり最適化でなんとかなる
ghciやrunhaskellでは最適化されないのか
ghcすげえ
foldとmapの合成でも最適化されるのかなぁ?されるといいなぁ
907デフォルトの名無しさん:2013/10/16(水) 05:10:42.62
>>906
マジカよインタプリタとリリースで挙動違うとか困る
908デフォルトの名無しさん:2013/10/16(水) 05:50:17.73
>>903-906
いったい何の話をしてるんだ
最適化の有無で本当に挙動が変わるならGHCのバグかも
909デフォルトの名無しさん:2013/10/16(水) 07:21:10.22
何を言っているのか意味が分からん

take 3 $ reverse $ reverse [1..]

これは ghci だろうが ghc -O2 だろうが実行時に固まるんだが、
そういうことではなくて?
910909:2013/10/16(水) 07:47:46.00
ちなみに、次のような RULES プラグマを書いておけば、
最適化コンパイル時に、2回続けた reverse は無かったことにできる

{-# RULES "double reverse" forall xs. reverse (reverse xs) = xs #-}
{-# RULES "double reverse $" forall xs. reverse $ reverse xs = xs #-}
{-# RULES "double reverse ." reverse . reverse = id #-}

この場合いちいち複数のケースを書いておかなければいけないのが面倒だが
911909:2013/10/16(水) 07:52:18.62
>>910
あぁ、これでも2回続けた reverse が2つの関数にまたがってると最適化されんな

すまん、俺の方がスレ汚した、無視してくれ
912デフォルトの名無しさん:2013/10/16(水) 10:31:43.73
>>910
これ結局人間が気付かないといけないんだよなぁ
コンパイラが気付いてくれないのかなぁ

そもそも有限要素列の逆順の逆順は元の列だってことは証命しないといけないことなのかなぁ

自動証命マシンがあればなぁ

PS ハスケルは有限要素列と無限要素列との判別はできないのかなぁ
 キャントかなぁダズントかなぁ
913デフォルトの名無しさん:2013/10/16(水) 11:35:58.24
それが判定できたら、停止判定問題も解けちゃうだろ
914デフォルトの名無しさん:2013/10/16(水) 12:49:40.83
>>912
やったことはないから確かなことは言えないが、reverse などの関数をモナドにして、
直接引数のリストを逆順にしたリストを返すのではなく、
「そのような計算をするものだという情報」(手続き情報?)だけを返すようにする。

そういうモナドを繋げて、最後に run する関数を適用することで実際の計算をするようにする。

その run 関数の中で、様々な最適化が施される。
reverse と reverse が繋がっていたら id に変えるとか。

こういうともできるんじゃないかな。

なんか repa が内部で似たようなことをやってたんじゃないか。
あちらはストリームフュージョンを施すためだったと思うけど。
915デフォルトの名無しさん:2013/10/16(水) 15:58:05.60
メタプログラミングかぁ
計算を計算するのかぁ
諸葛亮の領域だなぁ
916デフォルトの名無しさん:2013/10/16(水) 17:10:50.38
>>912
Haskellだとreverse . reverseはidとは違う関数だよ
例えば無限リストを入力したときの挙動が違う
917デフォルトの名無しさん:2013/10/16(水) 17:43:02.89
>>916
メタプログラミングで
Aspect 要素列
if サイズが有限 then id に一致 else…
みたいになるのかなぁ
918デフォルトの名無しさん:2013/10/16(水) 18:08:34.27
>>917
サイズが有限かどうかを判定する関数がそもそも書けないってことだと思うけど。
919デフォルトの名無しさん:2013/10/16(水) 18:45:17.01
Haskellのリストは評価しないと終端か否かが分からんからね
920デフォルトの名無しさん:2013/10/16(水) 19:07:40.29
>>918
ソースコード解析すればいけるんと違うの?
921デフォルトの名無しさん:2013/10/16(水) 19:22:50.10
無理な事が数学的に証明されているのでございます
922デフォルトの名無しさん:2013/10/16(水) 19:45:49.90
無理は承知で、そこをなんとか
923デフォルトの名無しさん:2013/10/16(水) 20:57:42.68
任意の入力に対しては無理なことは証明されてるけど、特定の入力について一切判定出来ないって意味じゃない
924デフォルトの名無しさん:2013/10/16(水) 22:11:12.69
ソースコード解析して
静的に ..]
動的にしか判らない
場合は無理として
…9,10]
みたいに静的に有限だと突き止めた場合適用できるようにしてみる価値はあるのではないか
925デフォルトの名無しさん:2013/10/16(水) 23:26:14.20
どう突き止めるかにもよるけど、そこまで分かってるならreverseが何個だろうがコンパイル時に適用すればいいだけだと思うよ
926デフォルトの名無しさん:2013/10/17(木) 08:17:28.99
>>924
現代的なIDEなら大抵はやってることだね
927デフォルトの名無しさん:2013/10/17(木) 17:28:54.05
リストが有限が無限かを判定しようとするIDE?
928デフォルトの名無しさん:2013/10/17(木) 19:38:08.61
リストが終端に達したならば有限。
無限の場合は無限ループ。
929デフォルトの名無しさん:2013/10/17(木) 22:37:06.39
それは実行時の話でなくて?
930デフォルトの名無しさん:2013/10/19(土) 02:30:57.46
IDEのバッファが有限
931デフォルトの名無しさん:2013/10/19(土) 17:26:33.28
reverse と reverse が繋がっていたら自動的に id にするまではできないけど
リストの二元性については Data.Monoid の Dual 使って書けるんだってさ

instance Dual a => Dual [a] where
dual = reverse . map dual

「Duality and De Morgan principles for lists」DA Turner 著 - 1990
http://link.springer.com/chapter/10.1007/978-1-4612-4476-9_48#page-1
くそういいところでサンプル切れてる
932デフォルトの名無しさん:2013/10/19(土) 18:38:09.43
Data.MonoidのDualってnewtypeであってクラスじゃなくね?
933デフォルトの名無しさん:2013/10/19(土) 18:41:45.94
反対の反対は賛成なのだー(duality)
934デフォルトの名無しさん:2013/10/19(土) 18:54:09.30
>>932
ごめん自分で Dual class 書いてたの勘違いした
935デフォルトの名無しさん:2013/10/19(土) 18:59:51.88
duality ... 双対性(そうついせい)
936デフォルトの名無しさん:2013/10/19(土) 19:59:41.01
SASのような分析言語はMLになるの?
937デフォルトの名無しさん:2013/10/20(日) 17:07:28.92
高レベルGUIライブラリならGrapefruitがナウいって聞いてサンプル見てみたが、
プログラムの意味がさっぱり分からんかった。

なんかArrowを使ってFRPがどうのこうのしてるってのは聞いたが、
ArrowとかFRPを理解していないと使えないライブラリなの、これは?

http://www.haskell.org/haskellwiki/Grapefruit
ここのにも何の解説もないし。

これどうやって使うの?

他の高レベルGUIライブラリもこんな感じなのかな。
938デフォルトの名無しさん:2013/10/20(日) 17:38:05.54
高レベルであろうが、仕様が変わるとすぐに使えなくなるようなAPIはやめてほしいです
SOEも使えないの多くなってるし
Stateモナドですらコンストラクタが使えなくなってるし
939デフォルトの名無しさん:2013/10/20(日) 18:04:24.77
State $ \i -> ((i+1), i)
はどう書くように変更されたのでしょうか
940デフォルトの名無しさん:2013/10/20(日) 19:15:30.03
>>939
state $ \i -> (i+1, i)
941デフォルトの名無しさん:2013/10/20(日) 20:26:24.42
目標が上がっていってずっとアルファ版になり、api fix出来ないんだろうな。

http://www.haskell.org/haskellwiki/Reactive-banana/Examples
http://book.realworldhaskell.org/read/gui-programming-with-gtk-hs.html

webインターフェイスでやってみるのはどうだい?
http://www.slideshare.net/maedaunderscore/elmfunctional-reactive-programming
942デフォルトの名無しさん:2013/10/20(日) 20:31:15.00
https://github.com/faylang/fay/wiki
こっちはHaskell subset
943937:2013/10/20(日) 20:48:22.74
NURBSモデラの内部の仕組みをHaskellでラフに設計してみたから、
それが上手く行ってるかどうか簡単なGUIを組み立てて実験してみたかっただけなんだ。
いずれはGUIもちゃんと学ぶつもりだったけど、今は軽く実験する程度だから、
スライドバーとかのウィジェットを簡単にペタペタと貼って、データとリンクして、
という感じで適当にやろうと思ってたんだが・・・

考えが甘かったみたいだ。

>>941 が紹介してくれた中ではバナナがイメージに近いけど、
これも式の意味が今ひとつ分からんが、ちょっと時間かけて勉強してみるよ。

ありがと。
944デフォルトの名無しさん:2013/10/20(日) 22:26:52.30
本格的な関数型言語のhaskellから入って、scalaを学ぶのは得策ですか?
945デフォルトの名無しさん:2013/10/20(日) 22:53:48.64
>>944
目的も語らずに得策かどうかなんて本人以外に分かるわけないと思う
946デフォルトの名無しさん:2013/10/20(日) 22:58:58.73
では、結構です。質問を撤回します。
947デフォルトの名無しさん:2013/10/20(日) 23:38:48.11
俺ただ一人の意見だけで撤退かよ
948デフォルトの名無しさん:2013/10/20(日) 23:41:04.97
Scalaで型クラスを使いたいとか、そういう珍しい野望があるなら
Haskellやっとくと良いかも
949デフォルトの名無しさん:2013/10/21(月) 00:15:23.88
そろそろ次スレの季節ですね
950デフォルトの名無しさん:2013/10/21(月) 00:39:34.56
Textライブラリのビルドプロファイル版が遂に最終来たワラタwwwwwwww
951デフォルトの名無しさん:2013/10/21(月) 06:59:00.80
>>950
ハングアップしたりして
952デフォルトの名無しさん:2013/10/21(月) 07:49:23.03
リストの要素が全て同じ値なら True、ひとつでも違う値があれば False を返す関数って、
標準ライブラリの中にありましたっけ?

f :: [a] -> Bool

なければ作りますが、できるだけ標準ライブラリの中のものを使う方が良いと思うので。
953デフォルトの名無しさん:2013/10/21(月) 07:51:24.43
all id
954デフォルトの名無しさん:2013/10/21(月) 08:25:55.79
f :: Eq a=> [a] -> Bool
f [] = True
f ls = replicate (length ls) (head ls) == ls

これのこと?
955デフォルトの名無しさん:2013/10/21(月) 08:50:09.62
(flip all <*> ((==) . head))

これか?
956デフォルトの名無しさん:2013/10/21(月) 09:03:12.45
200 MHz
64 MB

text-0.11.3.1
通常ビルドプロファイル版ビルド完了
最新PCだと何分で終わるか知りたいワロタwwwwww
957952:2013/10/21(月) 12:38:00.51
>>953
>>954
>>955

この3つのレスから、標準ライブラリには存在しないと判断しました。
自分で作ることにします。
958デフォルトの名無しさん:2013/10/21(月) 12:51:22.91
>>956
楽しそうで何より
959デフォルトの名無しさん:2013/10/21(月) 13:08:38.77
できるだけ標準ライブラリを使いたいって言うから
頑張って実装したのに
960デフォルトの名無しさん:2013/10/21(月) 13:51:18.80
コンパイル時間ならhaskell-src-metaもなかなか凄い
961デフォルトの名無しさん:2013/10/21(月) 17:08:48.29
>>956
distcc出来ねえのか?wwwwww

私はGentooでHaskell-platformをインストールするのに1時間くらいかなあ
962デフォルトの名無しさん:2013/10/21(月) 21:05:04.77
>>952 nub
963デフォルトの名無しさん:2013/10/22(火) 00:51:45.36
>>952
import Data.Set
(1==).size.fromList

ところで、nubって辞書ひくと「要点,核心」「小さなかたまり」らしくて、
まぁなるほどとは思うんだけど、数学用語としての意味とかあるの?
964デフォルトの名無しさん:2013/10/22(火) 09:30:19.88
Hoogle先生も
(The name nub means `essence'.)
とおっしゃってるな
965デフォルトの名無しさん:2013/10/22(火) 10:24:55.49
順序集合から集合への写像をessenceと言い張るのは
集合を本質と信奉する原理主義者が標準ライブラリ作者の中にいるという事
966デフォルトの名無しさん:2013/10/22(火) 13:06:05.90
なにそれこわい
もしかして、モサド?
967デフォルトの名無しさん:2013/10/22(火) 22:46:04.60
>>193 が紹介してるリンク先をゆっくり読んでるのですが、
理解のために確認したいことがあります。

<Laws for sum types> のところで Add Void a === a の法則が出ててきます。
これが正しいことをfrom関数とto関数が作れることで証明したいのですが、
下記のようなもので良いのでしょうか。

from :: Add Void a -> a
from (AddL _) = undefined
from (AddR x) = x

to :: a -> Add Void a
to x = AddR x

これなら AddR a 型の方を使っている限り to (from a) == a と from (to b) == b
の同値性は保たれています。
一方 Void 型のとり得る値がないので AddL Void 型のとり得る値も存在しません。

こういう理解で良いでしょうか。
968デフォルトの名無しさん:2013/10/23(水) 07:30:49.54
> to (from a) == a と from (to b) == b
Haskellだとこれが証明できないんだよなぁ
しかもundefinedがあるから() -> Voidが証明できちゃうし
まずAgdaでやってその一部がHaskellでもできるよぐらいでいいんじゃないかな
969デフォルトの名無しさん:2013/10/23(水) 07:58:49.25
970デフォルトの名無しさん:2013/10/23(水) 08:54:32.71
Haskell製のdat取得システムが早速批評されてるな
これから叩く人沢山出てきそう
一般公開することでそれで俺がもっとHaskellらしい書き方で作ってやるぜみたいな人を発掘するっていうのも目的の一つなんだろうか
971デフォルトの名無しさん:2013/10/23(水) 10:28:49.11
>>970
Haskell製のdat取得システム Rokka
https://github.com/Cipherwraith/Rokka

Haskell自体についての批評はされてないと思うけどなぁ
Rokkaのスレにはひろゆきのレスを意図的に誤訳してHaskell批判にすり替えてるアホがいるけど、
それ以外にHaskellについて批評されたレスを見たことはない。
http://pele.bbspink.com/test/read.cgi/erobbs/1379086553/782-783
972デフォルトの名無しさん:2013/10/23(水) 16:46:06.00
ひろゆきサワーグレープセオリーwwwwwwww
ひろゆきの知能じゃハスケルは手に余るのでござろうwwwwwwww
973デフォルトの名無しさん:2013/10/25(金) 01:22:27.75
>>Haskell製のdat取得システム
こんなのスクリプト言語でもできるじゃん
何?ドーナツの輪はなんであるのか?見たいな事をするときに使うとかほざいてたわりに
実用的なことで使われてるじゃん
クズだな
974デフォルトの名無しさん:2013/10/25(金) 03:37:20.48
卒研でHaskellで2ch用CUIブラウザ作った俺からすれば、何を今さら…
shift_jisの日本語処理は諦めたからMSのコマンドプロンプトで実行すると文字が見えないが
975デフォルトの名無しさん:2013/10/25(金) 03:43:18.75
MD5の情報ファイルを読み込もうと思う
アットパーセックとかいうのを入れとけばいいんだろ?
976デフォルトの名無しさん:2013/10/25(金) 04:05:21.92
>>974
それ、もうすこしすると、ちょっとした修正で使えるようになるんじゃない?
977デフォルトの名無しさん:2013/10/25(金) 07:58:14.56
その卒研の新規性を知りたい
978デフォルトの名無しさん:2013/10/25(金) 08:03:23.74
卒研に新規性を求めてはいけない(懇願)
979デフォルトの名無しさん:2013/10/25(金) 08:17:19.38
卒研って研究室の教授はまるで見てないらしいな
まあ学部生なんかどうでもいいか
980デフォルトの名無しさん:2013/10/25(金) 08:31:09.54
おいおまえら、ここは2chだぞひろゆきの立場も考えろ
そうーHaskellで書いたのー新規性ちゅごいですねー
981デフォルトの名無しさん:2013/10/25(金) 09:26:55.20
2ch過去ログサイトunkarもGo言語で書かれているし、
マイナー言語を使って「俺カコイイ」したがる人は一定数いる

さすがに卒研でShift-JISも処理できない専ブラ作る人は別の意味でレベルが違うがなw
982デフォルトの名無しさん:2013/10/25(金) 09:47:35.43
学部3年の講義の課題でVMで動くJITコンパイラやGCライブラリを作る所も多いというのにそんな卒研で恥ずかしくないの?
983デフォルトの名無しさん:2013/10/25(金) 10:00:19.09
Shift-JISも処理できない専ブラで卒研通っちゃうとか、
そこらへんのフリーソフトの作者は誰でも卒研通っちまうだろう
984デフォルトの名無しさん:2013/10/25(金) 10:16:09.46
UIやアーキテクチャが論点かもしれないだろうし
985デフォルトの名無しさん:2013/10/25(金) 10:19:44.72
そこらへんのフリーソフトの作者がソフト自体やブログしか発表しないから駄目なだけで
きっちり論文にまとめられれば卒論・修論レベルになるのは普通にありそうだが
986デフォルトの名無しさん:2013/10/25(金) 11:02:40.08
NTTデータがリバースエンジニアリングに使うらしいけど
その顛末の方を知りたいな
987デフォルトの名無しさん:2013/10/25(金) 13:49:45.92
>>986
リバースエンジニアリングにHaskellを使う?
988デフォルトの名無しさん:2013/10/25(金) 15:39:39.75
JCLでCOBOLなレガシーシステムをマイグレーションするシステムをHaskellで作りました、
みたいな話でしょ。なんか聞いた記憶では。
989デフォルトの名無しさん:2013/10/25(金) 16:59:39.23
>>969
Haskellでアンドロイドアプリ作れるようになるの?しゅごい!
990デフォルトの名無しさん:2013/10/25(金) 17:24:47.91
>>989
AndroidはJavaのAPIが要だからfregeのが楽だぜ
ajhcは純Haskellで実用性重視という点で期待はできるが辛い
991デフォルトの名無しさん:2013/10/25(金) 21:55:27.75
関数型プログラミング言語Haskell Part24
http://toro.2ch.net/test/read.cgi/tech/1382705669/
992デフォルトの名無しさん:2013/10/25(金) 22:16:14.71
次スレも建ったことだし、埋めるか・・・
993デフォルトの名無しさん:2013/10/25(金) 23:29:01.96
Haskellスレにも穴があるんだよな…
994デフォルトの名無しさん:2013/10/26(土) 06:36:50.22
はぁ ♪
すける乳首に、
首ったけ♪
995デフォルトの名無しさん:2013/10/26(土) 10:23:46.29
埋めるよー
996デフォルトの名無しさん:2013/10/26(土) 10:25:38.67
Haskellっぽく埋めようぜ
997デフォルトの名無しさん:2013/10/26(土) 10:57:31.48
fregeってJavaのクラスライブラリ使うときに一々メソッドについて宣言しなくちゃならないんだろ?
http://fits.hatenablog.com/entry/2013/09/01/190502
多くのJavaクラスを使う必要が生じたら手間が膨大になって詰むだろ
998デフォルトの名無しさん:2013/10/26(土) 11:09:43.16
GHCでFFI使う時みたいに自動生成したらええやん
999デフォルトの名無しさん:2013/10/26(土) 12:23:31.03
>>997
実際やってみりゃわかるけど
ほぼ固定にできるから自分の使いたいように自動生成できるで
1000デフォルトの名無しさん:2013/10/26(土) 12:25:48.89
_|_
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。