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

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

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

1 :デフォルトの名無しさん:2013/03/23(土) 12:34:19.09
haskell.org
ttp://www.haskell.org/

日本語サイト
ttp://www.sampou.org/cgi-bin/haskell.cgi
ttp://www.shido.info/hs/

過去ログ
関数型プログラミング言語Haskell
Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html
Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/
Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/
Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/
Part18 ttp://toro.2ch.net/test/read.cgi/tech/1331902463/
Part19 ttp://toro.2ch.net/test/read.cgi/tech/1340760070/
Part20 ttp://toro.2ch.net/test/read.cgi/tech/1350428908/
Part21 ttp://toro.2ch.net/test/read.cgi/tech/1358702176/

170 :デフォルトの名無しさん:2013/04/07(日) 12:11:14.14
>>168
残りリスト要素の平均じゃなかったの。

171 :168だけど日本人じゃないから変な日本語は許してな:2013/04/07(日) 12:19:59.77
>>170
そうだったな、すまん
value xs = zipWith (/) xs (map ave (tails xs))

172 :デフォルトの名無しさん:2013/04/07(日) 14:01:10.42
>>164
>C言語の某定番教科書はポインタと構造体の解説が延々と続く。
どれ?

173 :デフォルトの名無しさん:2013/04/07(日) 14:10:23.37
ポインターを考えなくてすむ代わりに別の追加の概念注意しなきゃならないなら
俺はよりコンピュータの本質に近い方を選ぶ

174 :デフォルトの名無しさん:2013/04/07(日) 14:14:32.28
let ! や $! や $!! でサンクを潰して廻るのは
コンピュータの本質に近く無いと申すか


確かにそうですね

175 :デフォルトの名無しさん:2013/04/07(日) 15:17:04.03
>>173
そのコンピュータというのがハードの事なら、より近いのはC言語だな
もし計算を意味するのならHaskellの方が近いな

176 :デフォルトの名無しさん:2013/04/07(日) 15:42:26.12
ほう、ループよりも再帰の方が計算の本質にちかいと申すか?
たんなる理論的なからくりだろう>再帰

177 :デフォルトの名無しさん:2013/04/07(日) 17:56:41.74
本質なんて言葉を使ったらダメだよ。

チューリングマシンとラムダ計算のどちらが本質か、だなんて誰にも決められない。

178 :デフォルトの名無しさん:2013/04/07(日) 18:15:01.36
本質言うならCPUと密接なCに決まってる

179 :デフォルトの名無しさん:2013/04/07(日) 18:44:06.43
CPUが本質だってんならループでも再帰でもなく条件ジャンプが本質だw

180 :デフォルトの名無しさん:2013/04/07(日) 18:51:44.96
>>176
そもそも自然数が再帰の構造なんだから

181 :デフォルトの名無しさん:2013/04/07(日) 19:11:30.89
ペアノの公理も単なる理論上のからくりというか‥‥実用上でなにかうれしいことでもあるのか?

182 :デフォルトの名無しさん:2013/04/07(日) 19:32:57.56
>>181
自動定理証明に応用できる

183 :デフォルトの名無しさん:2013/04/07(日) 19:46:45.41
お前らってアセンブラやったことないの?

184 :デフォルトの名無しさん:2013/04/07(日) 20:01:24.84
アセンブラみたいな具体的さが本質なのか、抽象が本質なのか、誰にも決められん。

最近流行ってるのは抽象による形式手法だけど、C言語ベースでの形式手法も研究されてるし。

185 :デフォルトの名無しさん:2013/04/07(日) 20:27:08.19
抽象の方が変更に強いからな。
実践では抽象しないと開発が間に合わないんだよね。

186 :デフォルトの名無しさん:2013/04/07(日) 20:52:52.11
ソースが紛失して2000年問題のときに機械語編集してた思い出

187 :デフォルトの名無しさん:2013/04/07(日) 20:55:39.32
>>186
マジで?!

188 :デフォルトの名無しさん:2013/04/07(日) 21:39:37.77
それはSys/370(互換機)の機械語かな?

189 :デフォルトの名無しさん:2013/04/08(月) 02:21:59.09
プログラミングをコンピュータと人間との通信と考えると、言語列の長さとその通信の平均誤り率いう視点から機械語と高級言語に本質的な違いが出てくる

190 :デフォルトの名無しさん:2013/04/08(月) 04:39:05.59
>>184
本物の形式手法は抽象度の高い仕様から
Adaサブセットやアセンブリまでをカバーして
それぞれのレベルでテストや証明をした上で
相互にトレーサブルにする。

つまり、どっちも本質。

191 :デフォルトの名無しさん:2013/04/08(月) 06:43:16.27
コンパイラやリンカのテストや証明もつくのかそれは本格的
C/C++等の抽象度が低い、というのが今ひとつ理解できないのだが、この場合の抽象度とは何を意味するのだろうか?
言い換えるとC/C++でも抽象度が高い記述があるのだろうか?

抽象度が高い=ての込んだ複雑な「からくり」がついただけ、という史観はそろそろカビが生えてきたようだ‥‥

192 :デフォルトの名無しさん:2013/04/08(月) 11:15:43.10
C言語だと、式の世界は比較的に抽象度が高い。
副作用のない関数と式の組み合わせで書けるものはそう書いたほうが良いね。

193 :デフォルトの名無しさん:2013/04/08(月) 19:47:50.78
>>192
fortranの設計者(バッカス先生)はチューリング賞講演で、
fortranの中で意味があるのは代入文の右辺だけだと言ってた。

194 :デフォルトの名無しさん:2013/04/08(月) 22:31:21.02
抽象度が高いってのはそれだけレイヤ踏んでるんだからハードウェアの本質から遠ざかってるだろ

195 :デフォルトの名無しさん:2013/04/08(月) 22:34:50.48
レイヤ?それは計算モデルではなく実装の話だろうが。
計算モデルにはレイヤなんて概念は存在しないw

196 :デフォルトの名無しさん:2013/04/08(月) 22:59:54.66
だから実装の話だよ何聞いてんだ
実装に実装を重ねてハード寄りの泥臭さから遠ざかったところに高級言語があるんだから
ハードウェアの本質がそこにあるはずがないって話

197 :デフォルトの名無しさん:2013/04/08(月) 23:06:44.08
ハードは泥臭くない
ゲーデル数が数学の定理に比べて泥臭くないのと同じ

むしろ洗練されている

198 :デフォルトの名無しさん:2013/04/08(月) 23:17:35.81
例えばI/Oポートにアクセスしたあとnop並べないといけないじゃない
そういうのが洗練されてるって言うつもりでいる?

199 :デフォルトの名無しさん:2013/04/08(月) 23:21:24.73
>>198
高水準言語で見ればnop並んでる
最も低水準の機械語で見ればコードの端から端まで2進数というたった一種類に抽象化された数が並んでるだけ

200 :デフォルトの名無しさん:2013/04/08(月) 23:25:00.57
それは屁理屈だよ

201 :デフォルトの名無しさん:2013/04/08(月) 23:47:58.93
Haskellスレはマ板に移った方がいいな

202 :デフォルトの名無しさん:2013/04/09(火) 01:01:33.08
アホを構う大馬鹿がいるからな。

203 :デフォルトの名無しさん:2013/04/09(火) 01:17:36.25


204 :デフォルトの名無しさん:2013/04/09(火) 01:25:49.73
コンピュータが人間だったら、機械語こそがもっととも抽象化されてて自然言語にもっとも近い言語なんだよね?

205 :デフォルトの名無しさん:2013/04/09(火) 01:37:28.97
自然言語が上手く抽象化されてるとは限らなくね
最強の俺言語として生まれたハングルを指して言ってるならあれだけど

206 :デフォルトの名無しさん:2013/04/09(火) 02:12:20.33
コンピュータ人間にとっては、自然言語(機械語)こそが最高に抽象化された言語
語の列を元と同じ動作をする範囲で抽象化して再び提示しても元の語の列になるという意味で

語の列が抽象化という作用により不動になるプログラミング言語を完成させたとき、その言語は機械語と同型である

207 :デフォルトの名無しさん:2013/04/09(火) 02:20:52.25
誰か>>206を翻訳してくれ
日本語で書いてあるはずなのに、意味が分からないんだ

208 :デフォルトの名無しさん:2013/04/09(火) 02:28:04.88
あるプログラミング言語の任意のソースコードを同じ動作をするように抽象化したら、元のソースコードと変わらない
そのプログラミング言語は機械語である
ゆえに機械語こそが最高に抽象化された言語である

209 :デフォルトの名無しさん:2013/04/09(火) 02:40:44.15
機械語は抽象されてるよ
実際、機械語の操作的意味論の美しさといったら…

210 :デフォルトの名無しさん:2013/04/09(火) 06:00:31.60
言葉遊びと拡大解釈はファウルだよ

211 :デフォルトの名無しさん:2013/04/09(火) 07:09:20.20
>>208
はっきり言って、なにを言っているのかわからない。

212 :デフォルトの名無しさん:2013/04/09(火) 22:33:26.37
また始まるのか

213 :デフォルトの名無しさん:2013/04/09(火) 22:59:28.84
いつもの人かな?

214 :デフォルトの名無しさん:2013/04/10(水) 00:12:02.18
いつもの人というのは俺の事なんで、そいつは別人だ

215 :デフォルトの名無しさん:2013/04/10(水) 00:15:45.44
>>214
匿名とはいえ、失礼いたしました。(_O_)

216 :デフォルトの名無しさん:2013/04/10(水) 00:29:33.56
>>214
何とかしてくれよ

217 :デフォルトの名無しさん:2013/04/10(水) 01:21:41.46
拡大解釈=抽象化
言葉遊び=プログラミング

218 :デフォルトの名無しさん:2013/04/12(金) 00:00:06.73
ほらつまんないレスするからスレ止まったじゃん

219 :デフォルトの名無しさん:2013/04/12(金) 00:19:25.55
Monadのインスタンスにしたら自動的にFunctorやApplicativeのインスタンスにしてくれる機構ってある
無いよね?

220 :デフォルトの名無しさん:2013/04/12(金) 05:05:31.67
【議題】
Monad ⊂ Functor みたいにサブクラス宣言があればいいのに

221 :デフォルトの名無しさん:2013/04/12(金) 07:01:04.05
そんな宣言が有ったらreturnが要らない子になるだろ!

222 :デフォルトの名無しさん:2013/04/12(金) 10:08:01.28
要らないなのはどう見てもfailの方なんだが
なんだそれふざけてるの

223 :デフォルトの名無しさん:2013/04/12(金) 22:34:40.22
return はいらない子
むしろ有害

224 :デフォルトの名無しさん:2013/04/12(金) 23:37:48.82
ポカーン

225 :デフォルトの名無しさん:2013/04/13(土) 01:12:51.31
*Main> (\m -> m (++"z")) . runCont $ do { x<- Cont $ \f -> f . f $ "a"; y<- Cont
$ \g -> g . g $ "b"; return $ x++y; }
"aabzzaabzzbzz"
色々実験してるけどContモナドが継続の意味も含めさっぱり分からない…

226 :デフォルトの名無しさん:2013/04/13(土) 10:13:06.61
ttp://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/
これのHaskellの部分は見た?

227 :デフォルトの名無しさん:2013/04/13(土) 12:11:28.44
ありがとうございます
良さそうなpdfをリンクから見つけたので読んできます
http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/main-j.pdf

228 :デフォルトの名無しさん:2013/04/13(土) 18:46:31.54
リワハ以上専門家未満のライブラリ教えろ

229 :デフォルトの名無しさん:2013/04/13(土) 18:50:38.00
うっさい

230 :デフォルトの名無しさん:2013/04/13(土) 20:26:57.25
>>228
リワハのライブラリって何?

231 :デフォルトの名無しさん:2013/04/13(土) 20:44:44.28
リアルワールドハスケルのことだろう

232 :デフォルトの名無しさん:2013/04/13(土) 22:20:41.84
いや、だからリアルワールドハスケルの「ライブラリ」って何よ

233 :デフォルトの名無しさん:2013/04/13(土) 22:23:49.48
Bloom filterより複雑めなアルゴリズムとかじゃね(適当
まあ接続詞が1つしかない文章にこれ以上突っ込んでも仕方ない気がするけど

234 :デフォルトの名無しさん:2013/04/14(日) 15:38:54.38
ごめんなさい

235 :デフォルトの名無しさん:2013/04/14(日) 17:49:32.35
なんで謝る?もっと謝って

236 :デフォルトの名無しさん:2013/04/14(日) 18:38:09.36
/⌒ヽ    ごめんなさい
く/・ ⌒ヽ
| 3 (∪ ̄]
く、・ (∩ ̄]

237 :デフォルトの名無しさん:2013/04/14(日) 22:23:52.55
可愛らしい顔文字だというのは分かるが
2ちんこ1金玉だな

238 :デフォルトの名無しさん:2013/04/15(月) 15:04:25.83
 /⌒ヽ    ごめんなさい
く/・ ⌒ヽ
 | 3 (∪ ̄]
く、・ (∩ ̄]

239 :デフォルトの名無しさん:2013/04/17(水) 02:08:13.62
Prelude> let f a b c = (a,b,c)
Prelude> f 1 2 3
(1,2,3)
Prelude> (1 `f`) 2 3
(1,2,3)
Prelude> (`f` 2) 1 3
(1,2,3)
Prelude> let g = (`f` 2)
Prelude> 1 `g` 3
(1,2,3)
Prelude> let h = (`g` 3)
Prelude> h 1
(1,2,3)

240 :デフォルトの名無しさん:2013/04/17(水) 13:01:01.94
(`f` y) x === x `f` y === f x y
ったりめえだとしか言い様がないんですが
あと、
f = (,,)

241 :デフォルトの名無しさん:2013/04/17(水) 23:21:25.37
何を主張したかったのかがわからない

242 :デフォルトの名無しさん:2013/04/17(水) 23:26:23.89
HaskellやっててCategoryの勉強し始めた奴っている?

243 :デフォルトの名無しさん:2013/04/17(水) 23:30:06.01
-- n ^ 2 steps
rev :: [a] -> [a]
rev (x:xs) = rev xs ++ [x]
rev [] = []

-- n steps
reverse' :: [a] -> [a]
reverse' = foldl prefix []
where prefix xs x = x : xs

foldr, flodlの働きがいまいちわからない。

244 :デフォルトの名無しさん:2013/04/17(水) 23:40:33.41
チラシの裏に自分の手で簡約の様子を書くことを面倒くさがると何も理解できん

245 :デフォルトの名無しさん:2013/04/17(水) 23:58:13.13
わかった。やってみる.

246 :デフォルトの名無しさん:2013/04/18(木) 22:10:36.22
foldlをfoldrで書けたら単位認定

247 :デフォルトの名無しさん:2013/04/18(木) 22:20:10.59
効率を考えなければreverseやって引数の順番変えればOK

248 :デフォルトの名無しさん:2013/04/19(金) 04:47:17.13
foldrの末尾再帰放棄してまで欲しいものって短絡?

249 :デフォルトの名無しさん:2013/04/19(金) 05:17:43.69
アキュムレータ使いたがるのは駄目なのか。
haskellの人は賢くてポイントフリーや既存の関数を使いまわすのが得意な人が多いせいか、
他人のコードはperlのワンライナーに似た難読性がある。

250 :デフォルトの名無しさん:2013/04/19(金) 20:24:23.77
遅延評価だから、リストを受け取って、その先頭を見て目的のリストの先頭だけ作って、
残りは自分自身に再帰、みたいな構造にしたほうがいいよ、という仕掛け。

でも慣れるまでは気にせずLispやMLでやるみたいに補助変数に溜め込むコードを
書いてればいいんじゃないかと思うけど。

251 :デフォルトの名無しさん:2013/04/19(金) 20:38:58.17
foldrなら短絡とアキュムレータ両方同時に使えるよ

252 :デフォルトの名無しさん:2013/04/19(金) 21:12:55.90
原始再帰関数とfoldrとの関係を答えられたら単位認定

253 :デフォルトの名無しさん:2013/04/20(土) 06:56:48.03
ぱらもるふぃずむ

254 :デフォルトの名無しさん:2013/04/23(火) 04:52:34.04
Windows2000に対応してますか?

255 :デフォルトの名無しさん:2013/04/23(火) 21:59:42.01
まず Windows2000 を探してきます

256 :デフォルトの名無しさん:2013/04/24(水) 01:15:26.74
まてよ、Windows2000を定義するほうが先だろ

257 :デフォルトの名無しさん:2013/04/24(水) 04:51:10.38
Windows2000,副作用なしで定義できるもんかね?

258 :デフォルトの名無しさん:2013/04/25(木) 02:09:17.88
致命的なバグがなくならなかったという意味でWindows2000はまだ完成していない

259 :デフォルトの名無しさん:2013/04/25(木) 04:36:30.68
Haskellに限った話じゃないけど
HaswellでTSX実装されたらソフトウェアトランザクショナルメモリは要らん子になるの?

260 :デフォルトの名無しさん:2013/04/25(木) 09:44:26.66
http://www.isus.jp/article/transactional-synchronization-in-haswell/
手始めにSTMに組み込まれるんじゃね?

261 :デフォルトの名無しさん:2013/04/25(木) 10:17:02.42
intelさんは両方やってるみたい。
http://csl.stanford.edu/~christos/publications/2007.tm_tutorial.pact.pdf

http://software.intel.com/en-us/articles/intel-c-stm-compiler-prototype-edition

262 :デフォルトの名無しさん:2013/04/25(木) 10:41:53.81
>>259
TSXでSTMも速くなりますけど?

263 :デフォルトの名無しさん:2013/04/25(木) 11:23:46.58
でもそのネタGHCのproposalにあがってないんでしょ?
予定は未定で予定ですらないのは当分実現しないって事だ

264 :デフォルトの名無しさん:2013/04/28(日) 16:37:54.93
話題は?

265 :デフォルトの名無しさん:2013/04/28(日) 17:53:42.26
>>264
そんなの待ってても来ないよ
自分で探せ

探す気がないんなら、これでも解読してろ
Wormholes: Introducing Effects to FRP
http://haskell.cs.yale.edu/?post_type=publication&p=802

266 :デフォルトの名無しさん:2013/04/28(日) 20:32:07.10
学生に実装を手伝って欲しいリスト(GSoC)
http://hackage.haskell.org/trac/summer-of-code/report/1

267 :デフォルトの名無しさん:2013/04/28(日) 21:01:43.48
何このリスト

アイデア閃いだけど実装面倒いからお前らやってくんない?
あ、でも閃いたのは俺だから、そこ忘れずに

ってやつか

268 :デフォルトの名無しさん:2013/04/28(日) 21:06:35.55
閃いたとかどうでもいい。

269 :デフォルトの名無しさん:2013/04/28(日) 21:16:01.96
大学って、誰が最初に閃いた(と発表して認められる)かでもめる所じゃないの?

270 :デフォルトの名無しさん:2013/04/28(日) 21:19:05.43
閃きだけの研究なんて皆無に等しい。

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

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