【アンチ】関数型言語は使えない【玩具】 2

■ このスレッドは過去ログ倉庫に格納されています
2012/02/28(火) 20:45:47.95
前スレ
http://toro.2ch.net/test/read.cgi/tech/1320743217/
2012/04/10(火) 06:53:56.48
整数ならインクリメント命令にできるが、ポインタだとそうはいかない。

>>249 は x=x+1 において x の評価が 2 回起きる、と言いたいらしいが、
ここでは x は任意の式ではなくて、ただの変数なので、その違いは無い。

結論。>>249 は今すぐプログラマをやめて、一生 2 ちゃんねるもプログラムも書くな。
2012/04/10(火) 06:55:53.83
>>255
ポインタでもできるよ?何言ってんの?
2012/04/10(火) 07:23:12.98
そりゃ 4 増える「インクリメント命令」がありゃ、int を指してるポインタでもできるが。
2012/04/10(火) 07:50:03.25
ん?今は x=x+1と++xの違いの話だろ?
どっちもxがポインタなら sizeof(*x) だけ増加する
2012/04/10(火) 08:51:18.39
>>255
> ここでは x は任意の式ではなくて、ただの変数なので、
なにか鬼畜なマクロかもしれませんよ。小文字一字なマクロは私の好みではありませんが。
2012/04/10(火) 11:46:04.65
仮に (1+1) に展開されたら ++ なんてできない。以上
2012/04/10(火) 12:12:40.99
>>255
ねえ、君、本当にプログラマ?
プログラミングで給料取れるレベルじゃないよ。
2012/04/10(火) 12:14:47.94
>>259
マクロの引数だったりすると、小文字一文字はよくある話だなw
2012/04/10(火) 12:14:53.18
結局具体的には全く反論できないんだなw >>261
2012/04/10(火) 12:27:04.25
セマンティクスの話してるときに
字句レベルの置き換えであるCマクロ持ち出す馬鹿は
プログラマに向いてないから辞めた方が良い
まともに言語規格書読めないだろ

例えば
#define double int
とされてたら double x; でも x はdouble型とは言えない、
とか言い出すレベルでバカなわけで
2012/04/10(火) 13:07:24.91
セマンティクスとしては x の評価を 2 度する、というのは変わらんじゃないのかな。
その評価が状態に対して idempotent かどうかという違いであって。
2012/04/10(火) 19:21:01.18
>>249
その2つのセマンティクスの違いって何なの?
そろそろ答え教えてくだしあ
2012/04/11(水) 17:15:34.44
結論: 教えてクレクレ君は二度とコード書かないほうがいい馬鹿
2012/04/11(水) 17:17:35.36
>>264
> セマンティクスの話してるときに

ダウトw
構文の話をしていた>>248にセマンティクスを持ちだしたのが>>249だwww
あまりにも馬鹿すぎるww
2012/04/11(水) 17:33:12.97
>>248
> 良く使うから構文糖が用意されるって話は分かるが
> 相性が悪いから?なにそれ?
> じゃあ何か。C言語で x=x+1 を x++ と書けたり

↓これがいつのまにか

>>264
> セマンティクスの話してるときに
> 字句レベルの置き換えであるCマクロ持ち出す馬鹿は
> プログラマに向いてないから辞めた方が良い

構文糖って「字句レベルの置換え」だよねw

> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
> プログラマに向いてないから辞めた方が良い
2012/04/11(水) 18:16:56.64
構文(syntax)と字句(lexical)の違いも分からないとか
マジ終わってんな
yaccとlexも知らんのか
2012/04/11(水) 18:38:20.37
>>267
じゃあ僕が良いこと教えてあげる
>>249のようなレスしても論理的な説明しなかったら説得力0なんだよ^^
2012/04/11(水) 19:55:55.38
教えてクレクレ君とバカにすれば、どんな間違いを言っても逃げきれると思っているバカが一人w
2012/04/12(木) 10:24:22.23
>>270
へー、字句解析に手を入れずに構文糖衣かw
馬鹿が考えることは壮大だねえww

お前、完全にプログラマー失格。
2012/04/12(木) 11:33:51.80
プログラマ失格のバカはどう見てもおまえだw
2012/04/12(木) 18:21:18.92
>>274
いいから涙を拭けよ

見ていて痛々しすぎる
そうやって涙目で必死に弁解するぐらいなら
本当にプログラマー辞めればいいのに
2012/04/12(木) 18:41:52.91
その言葉が自分にあてはまってると気付かないあたり、完全に重篤の患者ですなw
2012/04/12(木) 20:32:23.55
>>276
どうしてプログラマーになろうなんて思っちゃったの?
間違いを正すのは恥ずかしいことじゃないよ。
だから今すぐ辞表を書きなさい。
2012/04/12(木) 20:34:51.24
>>277 >>277
2012/04/12(木) 20:35:37.79
最近の関数型言語は辞表も書けない
2012/04/12(木) 20:37:18.68
そうやって無限退行することしかできないんだな
2012/04/12(木) 20:38:49.61
なんか気持ち悪いのに粘着されてんな

つーか書き込みから漂うドカタ臭で鼻が曲がるから
もうちょっとマトモな職に就いてから書き込んでくれ
2012/04/13(金) 00:56:17.28
pythonpython言ってた人はどこ行ったの?
2012/04/13(金) 01:08:26.21
人口が少ない言語。一人減っただけでとたんに静になる。
2012/04/13(金) 08:48:11.97
結局、蓮ケラはx=x+1とx++の区別がつかないのねwかわいそww
2012/04/13(金) 08:55:01.56
>>265 が理解できないならプログラマやめたほうがいいよ
2012/04/13(金) 17:58:38.11
ところで何故にセマンティクスの話をし始めたの?
2012/04/13(金) 18:47:51.14
構文糖って言葉を聞きかじって、使ってみたかったんだろ。察してやれw
2012/04/13(金) 19:39:06.58
検索してみたらセマンティクスって言い出したのは
>>249のアホじゃん
2012/04/13(金) 22:40:41.13
x=x++++++1
2012/04/13(金) 22:41:46.36
>>289はこう解釈されます

x=((x++)++) + +1
2012/04/14(土) 01:50:55.06
出来るやつならどっちも使える上に、C++のほうを好むと思うがね。

どっちもできるけどC言語のが良いってヤツ存在してんの?
2012/04/14(土) 04:41:53.92
Linus
2012/04/14(土) 05:21:54.94
お前らプログラマなの?
2012/04/14(土) 08:23:34.17
>>290
x++はsequence pointじゃない
ひとつのsequence pointに複数のside effectsを含むのは
未定義動作
2012/04/15(日) 00:50:18.96
>>292

レベルの低いヤツに合わせるためにあえてCを使ってるだけで、Cの方が良いってわけじゃないんでは?
2012/04/15(日) 01:08:19.88
Cの方がいいに決まってるだろw
2012/04/15(日) 01:10:23.80
関数型言語は遅いからね。
C言語に比べて100倍以上遅い。
2012/04/15(日) 01:36:54.44
やっぱりx=x+1と++xは式としてのセマンティクスが違うんだね。
納得。
2012/04/15(日) 01:43:18.55
そりゃそうだろう。

そもそも++というのはなんで存在するか。

まず1追加するというのはプログラムでよく出てくる処理。
ならばそれを高速にしようと、専用のアセンブラ命令(INC)を作った。
足し算はADD

昔のコンパイラは馬鹿だから+1を++に変換するなんてことはしない。
+1と書かれていたらADD、++と書かれていたらINCに
単純に置き換えるのみ。
2012/04/15(日) 02:04:05.23
さらに、CPU によっては命令の実行ごとにレジスタが自動的にインクリメントされるアドレッシングを備えるものもあった。
2012/04/15(日) 06:45:54.32
んで、ここ何のスレだっけ
2012/04/15(日) 07:05:36.02
>>298>>299
Cとは何かを決めてるのは言語規格書
違うというなら規格書を引用して説明しろよ
2012/04/15(日) 07:31:09.89
こんなトリビアルなピープホール最適化を「昔のコンパイラは馬鹿だから」だなんて
言っちゃうのは、コンパイラのことを全く知らないド素人です、と大声で宣伝するに等しい。
2012/04/15(日) 10:04:49.51
>>302
一番最初にCが作られた時に
言語規格書なんてないよw

規格書は後から作られたものです。
2012/04/15(日) 10:12:53.72
ピープホール最適化なんてのは
Cが一番初めに作られたときはなかったな。
2012/04/15(日) 10:15:32.82
> 規格書は後から作られたものです。

だから何。
規格を作る時に既存の実装を無視して作ったとでも思ってるおバカさん?
2012/04/15(日) 10:21:42.03
>>306
頭が悪いね。

(規格がない時代の)既存の実装がどうしてそうなっているか。
C言語は高級アセンブラと言われるように、
アセンブラを記述する代わりとして使えるように
コンピュータよりで仕様が作られている。ポインタとかね。

で、その一つが++という命令。CPUがインクリメントを速く実行できる
命令があるのなら、それに対応した文法をC言語に持たせるの自然な発想。

Cが作られたのは1971年だぞ。どんだけコンピュータが遅かったか。
その時代に、時間がかかる最適化処理をコンパイラにやらせるわけないじゃないか。
当時は人間が頑張ってC言語上で最適化する時代だったんだよ。
2012/04/15(日) 10:22:23.42
1973年だった。
2012/04/15(日) 10:26:09.65
現時点で規格書があるのに、それを無視して
昔はこうだったと言い出す奴は100%仕事できないだろうな
2012/04/15(日) 10:28:56.98
どうしてそうなっているかという
過去の話をしているのだから、同然だろ。
2012/04/15(日) 10:31:31.41
規格書を引用すればすむ話なのに?
2012/04/15(日) 10:31:37.81
そうそう企画なんて後付け、企画?
2012/04/15(日) 10:34:03.15
>>311
すむと思うなら自分でやってみれば?
2012/04/15(日) 10:35:11.26
そりゃ違う言い出したほうが出すべきだろ
書いてあるんだろ?違うって
2012/04/15(日) 10:36:19.74
「規格書に書いてある」と言い出した人はだれですか
2012/04/15(日) 10:37:48.97
規格書がない時代から++はあるのに、
規格書で決まってるんだから〜って
言ってる奴は間抜けだなw
2012/04/15(日) 10:38:14.13
規格書に書いてなかったら同じとも違うとも言えんだろ
馬鹿じゃないの?
2012/04/15(日) 10:38:42.04
>>316
>>309
2012/04/15(日) 10:39:20.38
>>317
ほう。つまり君は規格書に書いてあると言いたいわけだな?
引用して見せてよ。
2012/04/15(日) 10:41:39.25
>>319
規格書に書いてなかったら「未定義」だ
でも「違う」と言い切ったんだろ?だったら書いてあるんだろうが
2012/04/15(日) 10:41:54.91
>>318
だからね。規格書がない時代にどうして++が生まれたかの話をしてるんだよ。
規格書は後から作られたもの。

教科書にそう書いてあるから正しいんだとか言うなよ?
恥ずかしいからw
2012/04/15(日) 10:43:55.84
>>320
もしかして「セマンティクス」の意味がわかってないのかな?
2012/04/15(日) 10:46:24.21
>>321
> だからね。規格書がない時代にどうして++が生まれたかの話をしてるんだよ。

>>249から読み直したが、全然そんな話じゃなかったぞ
それとも>>249は規格書がない時代のCの話をしてたのか?
2012/04/15(日) 11:01:45.10
とんでもない間違いを何度も晒されてしまう>>248がかわいそうすぎww

2012/04/15(日) 11:10:47.57
> Cが作られたのは1971年だぞ。どんだけコンピュータが遅かったか。
> その時代に、時間がかかる最適化処理をコンパイラにやらせるわけないじゃないか。
> 当時は人間が頑張ってC言語上で最適化する時代だったんだよ。

嘘八百をご苦労さーんw

世界最初のFortranコンパイラが、「コンパイラなんてそんなものか」と
バカにされないために、最適化に苦心した、という話とか、最適化を
勉強していれば普通は常識。
2012/04/15(日) 11:41:26.16
結局、シンタックスシュガーの話をしているところに
規格書がない時代のセマンティクスの話をしだして
>もう二度とコードを書かないほうがいいぞw
とかドヤ顔で言っちゃったということか
2012/04/15(日) 12:40:56.55
よう、俺に振り回された気分はどうだい?w
2012/04/15(日) 17:13:44.57
事の発端はこれか。確かにこれは馬鹿すぎる。

>>248
> 248 名前:営利利用に関するLR審議中@詳細は自治スレへ [sage]: 2012/04/07(土) 01:20:29.83
> 良く使うから構文糖が用意されるって話は分かるが
> 相性が悪いから?なにそれ?
>
> じゃあ何か。C言語で x=x+1 を x++ と書けたり
> *(x+1) を x[1] と書ける構文糖が用意されてるのは、
> C言語がインクリメントや配列と相性悪いからか?
2012/04/16(月) 08:53:23.07
スレタイすら読めない奴って、他スレで負けて逃げてきた連中だろうな。
2012/04/16(月) 08:55:57.06
自分が負け続きで逃げっぱなしなので、必死でそのように思い込もうとしているのですねわかります
2012/04/17(火) 02:39:26.84
リーナスがこのスレに書き込みしてるのか?
2012/05/11(金) 10:24:30.87
セマンティクスとは「データの意味」のことであり,
333デフォルトの名無しさん
垢版 |
2012/05/20(日) 00:55:25.53
適材適所
2012/05/20(日) 02:06:46.69
>>328
これって、聞いた話だと、とあるCPUにレジスタの値を+1するだけの特化命令があって
その命令に対応させるためだけに作った構文なんだってね

むかしは、構文木とかもメモリがないから、一行分づつに作って、マシンコードを生成してたから
そういう命令が必要だったんだとか
2012/05/20(日) 02:07:29.68
>>334
最後の行訂正
命令→構文
2012/05/20(日) 17:39:04.46
とあるも何も、大抵のCPUにはインクリメント命令ぐらいあるだろw
しかも、x += 1はステートメントじゃないしwバカすぎw
2012/05/20(日) 20:50:55.36
最近のCPUは特化命令としてはないんじゃないの?
もちろん、命令デコードの段階で判断して、高速に実行するだろうけど
2012/05/20(日) 22:27:28.71
昔のCPUと違って、アセンブラ用コードに一対一で対応したマシン語で実行してる訳じゃないからなあ。
2012/05/21(月) 10:04:58.26
++とか--が用意されたのは

「アドレスレジスタが指す領域の値を参照/更新したあと、アドレスレジスタをインクリメント/デクリメントする」

「アドレスレジスタをインクリメント/デクリメントしたあと、アドレスレジスタが指す領域の値を参照/更新する」

上記あたりを1命令で実行可能なCPU向けに
最適化とか無しに上記の命令へダイレクトに解釈されるプログラムを書けるよう
用意されたものだと思ってた
2012/05/22(火) 13:51:37.23
大昔のPDP-11の頃はそうだったかもしれない、けど、1980年頃にはどうでもよくなって
たんじゃないかと思うけど。

後置の場合に変化前の値が式の値のなる点を除いて。
2012/05/29(火) 17:23:56.80
-----------まとめ----------
「馬鹿は死なねば治らないのであり、だからこそアナトール・フランスは
『愚かな者は、邪悪な者よりも忌まわしい』と言ったのだ。
 邪悪な者は休むときがあるが、愚かな者はけっして休まないからである。」
(ホセ・オルテガ・イ・ガセット 1883〜1955)

http://toro.2ch.net/test/read.cgi/tech/1336122899/247
>ゲームは作らんから知らんが、
224 == 247 == 704 == 717 == http://logsoku.com/thread/toro.2ch.net/tech/1335361193/46
口癖はコンポジション、ミサイルとホーミングミサイルの設計について1ヶ月間も考え続けてる
http://toro.2ch.net/test/read.cgi/tech/1336122899/772
>ゲーム作らなくてもお前よりマトモ
タスクの実行順序を意識しないとゲームが作れない(笑)
http://toro.2ch.net/test/read.cgi/tech/1336122899/767
敵機 → プレイヤー の順序でタスクを実行するとタスクがぶっ壊れる
OOを得意げに語っているつもりが、やっている事が20年前のC言語だったという事実
バイナリの書き換えがわからない
コンパイラ言語のことをコンパイル言語とか言っちゃう
タイプミスの数々、右手の人差し指と中指をケガしてる模様
http://toro.2ch.net/test/read.cgi/tech/1336122899/190
http://toro.2ch.net/test/read.cgi/tech/1336122899/297
http://toro.2ch.net/test/read.cgi/tech/1325246820/837-839
http://toro.2ch.net/test/read.cgi/tech/1336122899/318-320
http://toro.2ch.net/test/read.cgi/tech/1336122899/332-334
http://toro.2ch.net/test/read.cgi/tech/1336122899/818
http://toro.2ch.net/test/read.cgi/tech/1336122899/956
2012/06/10(日) 15:05:39.81
なんで関数型の人は他パラダイムを全部「命令型」と呼ぶの?
こないだPrologまでリストに含めて「命令型」と呼んでる人がいて
ツナマヨ思いっきり噴いちゃったヨ
2012/06/10(日) 15:40:49.40
そいつが素人あるいはニワカなだけだろ
実際、そのカキコは誰からも相手にされていなかったしね
例外的な馬鹿一人をつかまえて、すべてが同じと考えるのもいかがなものかと
2012/06/10(日) 18:22:24.14
SQLは何言語になるのかね
345デフォルトの名無しさん
垢版 |
2012/06/11(月) 00:41:19.97
ドメイン特化言語
2012/06/11(月) 00:54:22.31
確かに関数型言語が汎用である必要は無いのかもね。
汎用言語って括りだと、コンピュータの動作原理を考えても、
やっぱ手続き型が主流になるのは目に見えてるしな。
SQLみたいに何かに特化してしまってよいのかも。
2012/06/11(月) 07:32:22.77
関数型言語はアホには理解できないという意味で
汎用的じゃないな
2012/06/11(月) 10:04:14.07
つまり研究用に細々と使われるのがお似合いということ
2012/06/11(月) 11:01:21.63
>>346
と言うか手続き型で全部やることすら本来なら旧世代の考え方かと
(それが今も濃く残っちゃってるのだけど)
インラインアセンブラみたいな形で
本質的に手順を必要とする部分は手続き型、本質的に式を必要とする部分は関数型、
本質的に論理を必要とする部分は論理型、ごく低レベルな処理を必要とする部分はアセンブラ…

ってやればいいのではないかと思う
2012/06/11(月) 12:21:30.96
普通にCとHaskellを組み合わせて使ってる
2012/06/11(月) 14:36:16.74
バカは、他人がみんなバカということにしないと気が済まないから、
>>348 のような発想を、よくするんだよな。
80年代に、BASICさえ使えれば万全、とか言い張ってた人にそっくりだ。
2012/06/11(月) 14:49:12.37
つまり関数型言語を理解出来ないバカは少数ということ

それなのにユーザーが少ないのは使えない玩具だから
2012/06/11(月) 22:01:54.26
>>352
自分がその少数のバカに属する気分はどう?
2012/06/12(火) 00:21:53.12
へたくそな煽り乙w
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。