一般的な処理を関数型の書き方をすると遅い

■ このスレッドは過去ログ倉庫に格納されています
2014/01/26(日) 15:05:44.15
Rubyで関数型とか遅いからやめればいいのに
2014/03/24(月) 14:29:26.54ID:qjSjB1WB
>>134
高級言語ならhigh class languageになるな。
2014/03/24(月) 17:56:30.52ID:LCI3zej9
関数型言語がまったく普及しないのはコードが読みにくいのに
「これが読める俺tueee!」って厨二病しか支持してないせいだよね…
2014/03/24(月) 17:58:21.44ID:XUp8kLsg
ということにしたいのですね、としか言いようがない。
138デフォルトの名無しさん
垢版 |
2014/03/24(月) 22:09:12.40ID:xu/Rafk6
>>136
そういうことだな
139デフォルトの名無しさん
垢版 |
2014/03/25(火) 03:26:52.14ID:YPJ89aQY
>>136
んーわかってる人の中では普通に使われてるからねぇ。
140デフォルトの名無しさん
垢版 |
2014/03/25(火) 04:19:36.70ID:zpGja909
Javaで書かれたソフトウェアを使いたくないエンドユーザーが一般に存在することを
考えると、関数型で書かれたソフトウェアがユーザーに受け入れられがたいのは
容易に想像できます。

例えば、ホビーで良く使われるmebed NXP LPC1768はフラッシュ512KB、RAM32KBを
搭載、C++で開発するのが主流です。

RAMが32KBしかないのです。
この環境で関数型を使いたいでしょうか?

ユーザーはパソコン上であっても、関数型で書かれたソフトウェアを敬遠するでしょう。
アイデアは良かったと思います。
関数型は遠い未来には期待が持てると思います。
でも今は・・・
2014/03/25(火) 04:28:05.32ID:FBko2gtk
訂正

RAMが32KBしかないのです。
関数を使いたくないのは、この環境ぐらいじゃないでしょうか?
2014/03/25(火) 05:06:34.96ID:wfxz3XOd
(関数型(笑))
2014/03/25(火) 08:39:46.40ID:IvUvtejF
関数型言語でどういうコードが「読みやすいか」ってのは、手続き型言語やオブジェクト指向言語に比べてまだ定石のないところだとは思う。
カウボーイコーディングで場当たり的に書いていくと、より手の付けられない状態になりやすいのは関数型言語の方、ってのは実感としてあるがどうか。
2014/03/25(火) 10:40:18.20ID:QImWjIyD
>>140
遠い過去の世界に生きてる人がなんか言ってる、という感じにしか聞こえない。
145デフォルトの名無しさん
垢版 |
2014/03/25(火) 10:43:16.42ID:YPJ89aQY
>>143
むしろオブジェクト指向より歴史あるんだが(´・_・`)
2014/03/25(火) 13:16:02.08ID:XU3TbhQj
正直、C++とか筋の悪いオブジェクト指向言語で
ソースの可読性の問題でやたらバグが出て頓挫するようになったから
"ソースの可読性もクソもないコレで書けばバグが出ないよ!"って
滅んだ過去の亡霊が墓所から這い出て来たようにしか見えない。
2014/03/25(火) 13:27:26.93ID:QImWjIyD
それはお前こそが手続き脳ゾンビだと思うw
2014/03/25(火) 13:43:31.68ID:JLDIFaf/
コンパイラさんから見た可読性が大事なんだよ
2014/03/25(火) 13:49:04.38ID:QImWjIyD
Haskellはむしろ構文解析はめんどいぞ。
PEGの論文書いた人がサンプルに使ったのが、それが理由でJavaの構文を使ってるくらいだからw
150デフォルトの名無しさん
垢版 |
2014/03/25(火) 14:04:37.20ID:YPJ89aQY
まぁ普通に書いたら何でもかんでもオブジェクトにしてスパゲティになるよりも値をトランスフォームしてく関数型の方がバグが少ないのは自明だわな(´・_・`)
2014/03/25(火) 14:22:47.64ID:JLDIFaf/
だがバグのあるプログラムを書く自由は神に与えられた権利

それを脅かす者どもとは戦わねばならない
2014/03/25(火) 15:09:23.71ID:QImWjIyD
Haskellでもバグのあるプログラムは書けるよ。
単に型システムによって蹴落とされるようなバグだけが、コンパイル時に弾かれる、というだけで。
2014/03/25(火) 15:38:21.95ID:XU3TbhQj
C++が勘違いして導入した(そしていまも勘違いしてる奴が多い)オブジェクト指向と違って
本来のオブジェクト指向はオブジェクトにコレをやれとメッセージ(メソッド)を送ると
能動的にオブジェクトが自分で対処するという「ロール」としての区切りだから
本来スパゲティもなんもない。
2014/03/25(火) 15:55:31.26ID:QImWjIyD
本来の、というより、Smalltalk流の、だな。
Simula流を「勘違い」と定義している奴はそんなにいないと思うぞ。
まぁ観測範囲を偏らせれば、それなりにいるのかもしれんが。
155デフォルトの名無しさん
垢版 |
2014/03/25(火) 16:25:19.67ID:YPJ89aQY
>>153
メッセージの実行方式とメッセージをどこに送るかは何も関係ないんだが…(´Д` )
156デフォルトの名無しさん
垢版 |
2014/03/25(火) 17:40:01.96ID:rxYqaddp
>>145
歴史があるかどうかは関係ないんだが(´・_・`)
あらゆるソフトウェア、様々な規模のプロジェクトに適用されていて
経験とプラクティスがより蓄積されているのはどっちか言ってみ?(´・_・`)
157デフォルトの名無しさん
垢版 |
2014/03/25(火) 21:42:23.18ID:YPJ89aQY
>>156
ドカタは知らんかもしらんが、OCamlもHaskellもLispもErlangも色んなものに使われてるんだが(´・_・`)
2014/03/25(火) 21:54:28.24ID:pgzxn/ED
いろんなものというのはな。
たとえば、・・・あとは>>157が答えてくれるはずw
159デフォルトの名無しさん
垢版 |
2014/03/25(火) 22:02:41.15ID:IHAwITvv
LispはAutocadのマクロに使われていたが、いつの間にかVBAが主流に変わっていた。
使いにくさはいい勝負なのでどっちでもいいけど。
160デフォルトの名無しさん
垢版 |
2014/03/25(火) 22:08:49.40ID:IHAwITvv
関数型じゃないけど、Paintshop ProはPythonをマクロに導入して、そこから転落が始まり
ついに表舞台から消え去った。
今はひっそりと裏街道をとぼとぼしてる。
2014/03/25(火) 22:23:56.86ID:Z148p0/G
例えばお掃除ロボットのAIがlispで書かれてたりするみたい
2014/03/25(火) 22:26:01.21ID:B2Pq7RkB
特殊な用途ばかりだね。

お掃除ロボットって作ったことあるかい?
2014/03/25(火) 22:29:19.16ID:Z148p0/G
使ったことすらないよ
164デフォルトの名無しさん
垢版 |
2014/03/25(火) 22:31:38.58ID:IHAwITvv
そもそも関数型はアプリのマクロ程度にしか使いようがない。
ブラウザのスクリプトがJSではなくHaskellだったとしたら、現在のJSと同様に
広まったかもしれない。
そういう言語。
165デフォルトの名無しさん
垢版 |
2014/03/25(火) 22:47:21.88ID:zZmveeSg
関数型は、マルチコアに良いから出てきた。
未来の言語。
まだ、マルチコアに十分に対応したのがない。
166デフォルトの名無しさん
垢版 |
2014/03/25(火) 23:01:12.10ID:IHAwITvv
それは机上の空論の可能性が高いよ。
マルチコアに良いって言うのが副作用が無いことに依存している時点で、
既に使い道がかなり限定される。
ほとんどのユーザーは副作用のためにソフトウェアを利用するんだから。
167デフォルトの名無しさん
垢版 |
2014/03/25(火) 23:05:22.71ID:zZmveeSg
オール純粋関数型でなくてもいい。
マルチコアに対応したいところだけでいい。
CPU、GPUをフル活用しても時間食う処理の部分だけ純粋関数型で書く。
2014/03/25(火) 23:06:19.07ID:Z148p0/G
副作用はあるけど無い部分とうまく分けられる部分が評価されてるんじゃないの
2014/03/26(水) 00:35:10.61ID:R3pTG7sy
OSがタスク振り分けるからプログラムは自分で各コア勝手に弄るな!ってなりそうだよね
170デフォルトの名無しさん
垢版 |
2014/03/26(水) 00:48:06.90ID:74tcteRb
>>166
Haskellだって副作用のあるコードかけんだよ。馬鹿じゃねーの
171デフォルトの名無しさん
垢版 |
2014/03/26(水) 01:02:50.65ID:Tr2CflOd
>>167 Fortran95以降のpure/elemental functionがそれに該当するかもね。
引数わ書き換えたり(Fortranは基本、アドレス渡し)、ファイルI/Oの処理
が内部で禁止される。
スカラーからスカラーへの関数が、ベクトルからベクトルへの関数に自動的に
拡張されて、自動並列化をONにすれば要素毎の演算がコアに割り振られる。
172デフォルトの名無しさん
垢版 |
2014/03/26(水) 02:55:25.28ID:rDn7FARN
こんな問題、インライン化できないスクリプト言語だけ
173デフォルトの名無しさん
垢版 |
2014/03/26(水) 09:59:28.83ID:Pcq/Kh4O
ソースコードから作られてたんだ!
174デフォルトの名無しさん
垢版 |
2014/03/26(水) 20:16:47.96ID:uCn6QoX+

とまあこのように、関数型をマンセーしているのは関数型を使いこなせないでいる人たちってことですわ。
使いこなせる人は悟りを開いて使わない選択をする。
そんな時代ですわ。
2014/03/26(水) 21:42:41.71ID:FbuvqMDP
ということにしたいのですね。
176デフォルトの名無しさん
垢版 |
2014/03/26(水) 23:37:06.47ID:74tcteRb
まぁ今の時代にmutableデフォで作ることがあり得ないけどな
2014/03/28(金) 15:31:32.57ID:oHjvQv92
関数型言語を使いこなすコストパフォーマンスはオブジェクト指向とはさほど変わらないだろうけど、コストとパフォーマンスの総和はオブジェクト指向よりもかなり大きいって感じるなあ。
178デフォルトの名無しさん
垢版 |
2014/03/28(金) 16:02:36.26ID:7nj/VuU5
>>177
C#とF#で作ったもの、概ね速度同等で動くんだが。
2014/03/28(金) 16:34:57.35ID:JQ1TOnKh
なぜそこでオブジェクト指向がでてくるのか理解できない。
180デフォルトの名無しさん
垢版 |
2014/03/28(金) 17:44:57.16ID:nLurpOLQ
ブロックみたいな感じだね。
2014/03/28(金) 18:21:02.92ID:oHjvQv92
>>178
実行速度じゃなくてプログラマの労力の話ね。
182デフォルトの名無しさん
垢版 |
2014/03/28(金) 19:37:13.40ID:8pKr8NG5
>>181
何がコストで何がパフォーマンスなんだよ(´・_・`)

つかそもそもコストとパフォーマンスって足せるのか。
2014/03/28(金) 19:41:52.44ID:uqeEKwiN
壊れてんな、この人。
2014/03/28(金) 22:29:12.64ID:rusWfaEh
お前のモジュールって必要以上にファンクショナルだよな
2014/03/30(日) 10:13:05.52ID:YSazzIHg
haskellでforMとかmutable arrayとかRWSTモナドとか使ってると、これもう手続き型言語じゃんって気分になる
でもオブジェクト指向にはなれないんだよな
やっぱ両方使える方がいい
186デフォルトの名無しさん
垢版 |
2014/03/30(日) 10:57:46.58ID:M1MHIGwx
んじゃF#かScalaどぞー
2014/03/31(月) 00:03:10.70ID:tYwCn8xl
x64って何か変なスタックフレームの書き方するよな
再帰呼び出しが遅くなってスタック領域も多量消費すると思うんだけど
2014/03/31(月) 08:55:02.45ID:pd6KT+yL
製品版はどうせマイクロソフトなんだよ(´・_・`)
2014/04/04(金) 21:41:40.67ID:XDFeXbOi
JAVAで世界が変わる!
JAVAでOSが消える!
全てのソフトウェアはJAVAになる!
JAVA用のプロセッサが開発される!
OOP以外の言語は消える!





と言われていた時代を思い出した。
2014/04/04(金) 22:41:45.02ID:eePHkA+i
あー、日経とかがそう言ってたよねw
2014/04/05(土) 11:52:17.99ID:Y7OVjorE
言ってたって証拠あるの?
2014/04/05(土) 15:53:48.75ID:iKzYf4PO
おまえの目の前の箱で探せばすぐに
2014/04/05(土) 23:17:15.00ID:Y7OVjorE
それは提示できないという意味だろうな。
2014/04/05(土) 23:48:54.08ID:hZj4gbHT
証拠(笑
そう言うアホみたいな記事で埋め尽くされてた時代を知らない世代の方が多いのかもね、20年近く前の話だものなぁ。

当時の記事は古すぎてほとんど見つからないけど、少しは自分でググれよ。Amazonとかでそう言う本見つかるぜ。
2014/04/06(日) 08:04:01.37ID:B8PUb7p+
ほとんど見つからないのは、実際の所、ごく一部のバカが「銀の弾丸だ」と騒いだ、
といういつものパターンだからだよw

バズワード化すると、技術の本質ではなくバズワード的な部分しか見ないおまえのような
バカが沸くのも何十年経っても変わらないねぇw
2014/04/06(日) 12:57:38.19ID:hTzu53D+
誰に文句言ってるんだろう?
一人で空回りしてるね >>195のこと
2014/04/06(日) 17:40:55.07ID:M6hmK37I
>>195
何十年も何も人間の本質なんてここ2〜3千年位変わってないだろ。
記録に残ってないだけでもっと昔からかも知れないけどね。
2014/04/06(日) 20:45:59.56ID:IDxsBa0K
数年前の「安価なAndroidがiPhoneを駆逐するね!」論ぐらいの頻度で
Java無敵論はネットで毎日のように見かけたからなぁ
「おれはバズワードだってわかるもんねうひひ」とか(笑
2014/04/07(月) 00:06:53.35ID:hxvNlixn
>>195の人気に嫉妬
2014/04/09(水) 22:27:58.57ID:lvO8yNj8
逆に携帯のOSをオープンソースでなんてあり得ないとか言われてたよね。
2014/04/09(水) 23:11:17.72ID:rGPWN78T
今でも、ソースコードらしきものはあっても本当にそれからビルドされてるのか怪しいもんだしな
2014/04/10(木) 03:15:39.42ID:VcyeIpim
そーいや携帯のアプリはJavaだったな
203デフォルトの名無しさん
垢版 |
2014/05/19(月) 05:17:19.94ID:3fEqmDZd
関数型プログラミングはなあ
2014/08/31(日) 19:37:25.77ID:knyC4Rpa
 
2016/11/23(水) 20:42:30.89ID:8cJNovPT
海上自衛隊のドラム演奏が凄い!東京音楽隊
Haskell's Rascals Paul V. Yoder JapanNavy band
「ハスケルのあばれ小僧」ポール・ヨーダー スネアドラムロール - YouTube
https://www.youtube.com/watch?v=7Stt2bkLSCs
206デフォルトの名無しさん
垢版 |
2018/05/01(火) 20:26:39.77ID:sD3/P01t
>>63
今はこうだな。
var quickSort = (ary, pvt = ary[Math.trunc(ary.length/2)]) =>
ary.length <= 1
? ary
: [
...quickSort(ary.filter(n => pvt > n)),
...ary.filter(n => pvt == n),
...quickSort(ary.filter(n => pvt < n)),
]

quickSort([32,673,256,78,765,43,28,0,6])
//=> [0, 6, 28, 32, 43, 78, 256, 673, 765]
207デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:36:04.25ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

JT78J
208デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:52:26.38ID:RfoszcD2
EV2
2018/08/23(木) 12:06:24.33ID:NPcuqlt3
1998年購入
プログラミング言語 ML
https://images-na.ssl-images-amazon.com/images/I/31dHs00pM1L._BO1,204,203,200_.jpg
■ このスレッドは過去ログ倉庫に格納されています