なぜ、 = が 代入 を 表す 記号 に なったか?
1 :
デフォルトの名無しさん :
05/01/14 16:52:08 まぎらわしい
1 = unko;
1 = hage
>>2-3 この場合1に将来発生するであろう事態を代入記号として表したのであろうか?
はたまた1はこれらの事象、物体と等価であると表しているのであろうか?
謎は深まる、資料は増える、バグる、トラブる、納期が遅れる
恐怖のるるるるるである。
:=
7 :
デフォルトの名無しさん :05/01/14 17:44:34
(setq hage '(sagero))
定説を流動的に変えるという矛盾が素敵だな
じゃあ何ならいいのか上げてみろ クズが
11 :
デフォルトの名無しさん :05/01/14 17:54:05
"is"がいいな "a is 10"みたく
i キタ━(゚∀゚)━ !! 1
当然insertだろ。 "manko insert thinko"
あほくさ 記号の意味なんて数学の中であっても任意に決められるものだろ。 まぎらわしいとか言ってるやつは先入観に捕らわれすぎ。
>記号の意味なんて数学の中であっても任意に決められるものだろ。 そうなんですか?なんか数学基礎論を聞きかじっただけのような奴が こういうこと言いそうなきがする。
これからあほくさいこと皆でゆって遊ぼうとしてるところで あほくさといわれても困ります
19 :
デフォルトの名無しさん :05/01/14 18:29:33
>>16 条件式でまぎらわしいんだよ!!
perlだと、$i==1を書き間違えて$i=1になっててもエラー出ないでそのまま実行すんだぞ!!
マ板池 ===終了===
21 :
デフォルトの名無しさん :05/01/14 18:32:47
VB最強
効率を考えれば、何でも良いから短いの。 そう言う意味では「=」は神並に良い。 一文字な上に記号だからわかりやすい。
let it be
24 :
デフォルトの名無しさん :05/01/14 19:32:51
.eq.
25 :
デフォルトの名無しさん :05/01/14 19:35:32
mov
←
:=
その変更案でアンケートでもしてみろ 確実に反対する人の方が多いだろうが 黙ってアホみたいに使っとけクズが
>>17 ヒルベルトさんも同じような趣旨の発言をしているんですが。
ヒルベルトさんも聞きかじっただけのやつですか、そうですか。
#define 代入 = a 代入 1
代入記号に=を使った時点から、 関数型言語の歴史が始まったとも言える。
32 :
デフォルトの名無しさん :05/01/14 20:44:05
set a to 1
>>29 そのヒルベルトは別として肝心の君はどうなんだ?と言いたいんでしょう。
「○○のような奴が△△なこと言いそうな気がする」、と「△△なこと言うやつは全て○○だ」は
同値ではないと思うぞ。
MOVE 1 TO HOGE.
35 :
デフォルトの名無しさん :05/01/14 21:29:49
この板は数学的知識の不自由な方々ばかりだから正論を言っても反感を買うだけ
36 :
デフォルトの名無しさん :05/01/14 22:17:09
_ smalltalk
37 :
デフォルトの名無しさん :05/01/14 22:22:50
糞スレハケーソ!
>>33 その通り。ま、「数学をききかじっただけ」なんて表現になんか
変な劣等感を刺激されたのかなあ、と興味がありました。
というかですね、
同じ記号なのに別の意味をもってたりするBASIC。代入と比較で同じ=を使う。
代入に:=を使い比較に=を使うPascal、代入に=を使い比較に==を使うCとか。
比較といっても同一性と等価性の二通りの比較演算子があるLispとか。
一口に代入といってもCの代入とLispの代入では意味するところが全く異なるとか。
こういう差異ってのはプログラマなら知ってるのが当たり前で、
言語ごとに使い分けられるのが普通じゃん、て感じです。
39 :
デフォルトの名無しさん :05/01/14 22:37:23
set!
ヒルベルトとでも、適当に権威を振りかざせばスレが統治できると思ったんか? その前にもう少しまともに数学勉強しろや
43 :
デフォルトの名無しさん :05/01/14 23:54:48
var Chinco : TChinco;
よく使うものほど短い記号にすべき。 なので = で代入、 == で等価判定。 数学では、「x = a とする」(x に a を代入)の意味でも、 「x = a である」(x と a は等しい)の意味でも = 使うし。
つか、代入の表現方法の話だろ? 数学でプログラムできんのか??
慣れればどっちでもいいんだけど パスカルの比較 = はヴィルトの数学コンプレックスを少し感じるね。 コーディングしてて一番頻繁につかうのは代入だし、 Cみたく一文字で済ませろや!って感じ。等価(=)と非等価(<>)で文字数が違うのもダサイ。
>>45 数学なんか社会で役に立ってないと言うDQN
やはり変な劣等感があるみたいだ
ヴィルトの数学ってなに?
新言語oreでは代入記号は * にするぞ。
キチガイ1人まじってんぞ
1 + 2 = 3 だろ? 人間としてっ! なんで 1 + 2 = a じゃないんだ!?ふざけんな!!!!!!!!
ぶっちゃけると、 if ( n = 1 ){ } なんて書いちゃうようなマヌケはプログラミングやめろ。 プログラミング暦18年の俺でも、こんな下らん間違いは 1度もしたことがないぞ。
同感。次に、1==nってやるとtypo対策になります なんてやつもやめてください。
歴と暦をtypoするマヌケは日本人(ry
っていうか、 if(a = 0) がコンパイルエラーにならないのがそもそも駄目なのよ。 C# 使えばちゃんとエラーになるけど。
58 :
デフォルトの名無しさん :05/01/15 02:52:50
>>54 昔のbasicは if $n=1 で、代入も$n=1でしたが何か?
プログラミング歴18年にはbasicは含まれませんでしたか?
$nって変数表記するのってどういうBASIC?
$いらなかったっけ?
61 :
デフォルトの名無しさん :05/01/15 03:06:35
>>58 いやif(〜){}って時点でBASICじゃないってわかるだる
>>57 関数の戻り値を変数に代入しながらその式の値を使いたいとき不便だろ?
>>62 if ( (a = func()) != 0) { ... }
こういうことじゃないのか? FILE stream; if((stream=fopen(ニヨニヨ))==NULL) return false; ..
しかしどうやっても議論が深まらないのはスレタイが悪いのか住民の程度が低いのか・・・
>>62 > 関数の戻り値を変数に代入しながらその式の値を使いたいとき不便だろ?
そんなことが出来るからバグの元になっているわけですよ。
>>66 代入が文じゃなくて演算子だって仕様がバグの元になってるって初耳だぞw
どこのヘタレPGの話だよww
代入が演算子なのは、こんな式を実現するためだ。
a = b = c = 100;
で、「if文の条件判断基準がint型である」という仕様と、
「代入が文じゃなくて演算子である」という仕様は全く無関係だよ。
JavaとかC#とかはif文はboolean型で判断するけど、
代入が文じゃなくて演算子なのはCと同じだし。
if ( a = true ){
}
これはC#でもJavaでもコンパイルが通る。
関係ない2つの仕様を混同して「バグの元」とか主張しても
笑われるだけだよ。
>>57 python でも構文エラーになる。
そこで、関数の戻り値・・・みたいなのは、
while 1:
a = func()
if a !=0:
・・・
else:
・・・
といった構文になる
要するに 代入: = 評価: ? とすれば良いと。
>評価: ? > >とすれば ヴァカディスカー?
代入は← 同値比較は= 同一性比較は== これでOKでしょ。
こういう決まりにしたら、 もう誰も文句言わないんじゃないの? 「=は、代入の副作用を起こし、 代入操作前の左辺と右辺の比較結果(論理値)を評価値とする」
つーか演算子を名前にすりゃいいだけだろヴォケ a assign b; a equal b;
>>71-73 /\___/ヽ ヽ
/ ::::::::::::::::\ つ
. | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ
. | ::< .::|あぁ
\ /( [三] )ヽ ::/ああ
/`ー‐--‐‐―´\ぁあ
<a, b> で同値性
a = bは let a = bの省略形だから無問題
77 :
デフォルトの名無しさん :05/01/15 17:04:12
ああそうだいま思い出したけど letっつうのがあったんだな 意味ねーけどな
78 :
デフォルトの名無しさん :05/01/15 19:19:01
=は代入。 asが比較。==もasも2文字だしasは打ちやすい位置にあるし問題ないかと。
ながったらしい
83 :
デフォルトの名無しさん :05/01/17 14:47:30
大乳を表す記号を考えよう。
87 :
プログラマー@廃人 :05/01/17 15:38:56
>>10 >>13 is だと、言語によっては型判定と重なるからNG
個人的には gets がいい。
a gets 10
ちなみに、LaTeX環境では、\leftarrow は \gets でも出せるし、至極自然。
>>88 getsはCの関数にあるし、芸人のように消えそうだからやだ。
90 :
デフォルトの名無しさん :05/01/17 17:00:39
>1 そもそも、最初に = を代入に使ったプログラム言語は 何ですか。FORTRAN ?
91 :
デフォルトの名無しさん :05/01/18 10:15:14
条件式で代入することのほうが少ないんだから そっちの記号の方を特別にするべき
92 :
デフォルトの名無しさん :05/01/18 12:03:24
>72 文句言う。 方向性のある代入に"="を使うのはやっぱり気持ち悪い。
a := 5
95 :
デフォルトの名無しさん :05/01/18 15:40:42
a ヒカク 1 a イレル 1 O.K....?
>>90 恐らく。一応「世界初の高級言語」という事になってますから。
>>94 仮に a の値が 3 だったとして、a=a+1 を評価すると、
3 == 3+1 なので、この式の評価値は false。
また a は副作用により 3+1 (== 4) が代入される。
つまり、代入式の結果は 「代入によって値が変化しなかった」 事を示す、と? …あんまり嬉しくないなぁ。
やっぱPASCALの:=が一番いいよ。
100 :
デフォルトの名無しさん :05/01/19 05:54:24
>99 賛成。
101 :
デフォルトの名無しさん :05/01/19 06:30:39
等号より代入の方が使う機会が多いから、短くしちゃえってんで、 = になったのでは?
102 :
デフォルトの名無しさん :05/01/19 07:43:17
FORTRAN以来=が代入になったのだとしたら、 数学者が悩んだ末、そうしたんでしょうね。
LET A=B
104 :
デフォルトの名無しさん :05/01/19 08:08:42
(説得 A B)
A <- B
106 :
デフォルトの名無しさん :05/01/19 08:54:37
B ならば A と読まれそう
AはBを含む
108 :
デフォルトの名無しさん :05/01/19 18:39:41
MOV とか LD でいいんじゃなかろうか
109 :
デフォルトの名無しさん :05/01/19 18:57:39
ユニフィケーション
a <<<< 10
>>105 if(a<-5)
マイナス5より小さいなら、なのか、代入演算子なのか区別できない
a = 5; この文が実行された時点で数学的に a = 5 だと保証されるんだから イコールでいいじゃないか。
113 :
デフォルトの名無しさん :05/01/20 00:36:42
>>111 if(a ← 5) なら、問題ないだろう
だからAPLかと…
118 :
デフォルトの名無しさん :05/01/20 02:11:43
>>117 じゃあ、
if(a hidari 5)
勅命 今後すべての言語の代入記号は @ とする。 既に @ を別の演算に割り当てている言語は 不敬なのでお取り潰し
>>113-114 左辺のaと右辺のaは同じではないからいいじゃん。
a<new> = a<old> + 1;
つまり「ここからのaは、ここまでのaに1を足した値ですよー」を保証。
それよりも、なぜ assign という単語が「代入」と日本語訳されるのかが疑問。 「代入」に相当するのは substitute であって、assign は「割り当て」だぞ。
それよりも、3時間くらい我慢してる小便がもう限界。 そろそろトイレに行ってくる。
REBOLなんかは宣言的。関数の名前束縛にも同じ記号が使われる。
num: 10
double: func [n] [n * 2]
double num ; 20
>>111 オフトピだけど、字句解析時に空白を強制するって解決策がある。
124 :
デフォルトの名無しさん :05/01/20 07:44:18
?と@の記号ってfortrunで使ってた? もし余ってたんなら、それ使えば、歴史も変わってたのに。
125 :
デフォルトの名無しさん :05/01/20 10:25:51
126 :
デフォルトの名無しさん :05/01/20 10:50:42
>125 アルファベットをこれだけに限定する要請があったとすれば 代入記号に悩む余地はなかった訳だ。 当時はもう紙テープベースだったのだろうか。 紙テープだったとするとオペレーションシステムのコマンド制御用に 英記号はできるだけ確保しておきたいという了解があったとしても 不思議ではない。
127 :
デフォルトの名無しさん :05/01/20 10:53:35
>126 オペレーションシステム -> オペレーティングシステム
昔、Xのフォントには0x7eのグリフが←となっているものが数多くあった。
129 :
デフォルトの名無しさん :05/01/20 23:38:49
ところで、a←2とかa<-2ってさ、なんか矢印逆じゃね? だって、a+1が出てきたら2+1に変わるんだから、a→2だろ? なんか逆じゃね?
>>129 「Aに2を入れよ」
って意味でわ?
それならa←2でもヘンじゃないでしょ。
>>129 確かに、そういう意見もある。
で、双方の言い分を聞いた結果、'=' になったという訳。
めでたしめでたし。
133 :
デフォルトの名無しさん :05/01/22 14:16:33
move 2 to a
set a to 2
assign a to 2
Fortran だと assign 2 to a というのはある。 代入じゃなくて goto の飛び先を設定する文だが。
パスカルでも使えばー
Delphiだと a.Assign(b);
>>125 ,126
たしかに昔のIBMのプリンターの制約によって文字の種類は48種類しか使え
なかった。そこから英数字と空白を除くと、記号は最大で11種類となる。
当時使える記号の種類が少なかったのは本当だけれど、ただ Fortran では
Fortran専用の文字集合を使っていたので、やろうとおもえば = のかわりに
別の記号も使えたはず。
Fortranは「formula translator」という名前のとおり、さいしょ「数式
がそのままプログラムになります!」というのが売りだったから、数学で
使う = を使いたかったのではないかな。
その割には、ついこの前まで .GE. とか .LT. とか書かないといけなかったんだけどな。
単に数学の影響でしょ。 αに1を代入することを、α=1とか表現するだろ?
145 :
sage :05/01/24 22:02:37
このスレで代入記号変えろと言ってる奴これから、 他人の作成した言語を直接使用するの禁止な!! そんなに我を通したいなら自分でコンパイラ作って 好きに代入記号を定義しろ!! 自分で第4世代言語を開発してろw
ビックリするほど低能っぽいレスきたー
>>145 そんなにいきまかんでも、トランスレータで十分だと思うが。
>>142 最初のころの Fortran では論理式が使えなかったので、.GE. も .LT. も
あるいは .EQ. もなかったのよ。さすがにそのころのコンパイラは私も使
ったことがないけど。
#define PI 3
150 :
デフォルトの名無しさん :05/01/26 15:13:09
さんてんいちよんいちごくにろくごはちきゅうななきゅうさんきゅう
>>150 小数点下九桁めですでにまちがってるぞ。
サンテンイチヨンイチゴオキュウニイロクゴオサンゴオハチキュウナナキュウ
参、壱肆壱伍玖弐陸伍参伍捌玖漆玖参弐参捌肆陸弐陸肆参参捌参弐漆玖
三日四日生くるに無意味、否、苦無く御文や読む。
さんてんのどあめ
約4
円周率、来年から「約0」に 「3.14」から「約3」と少しずつ簡略化されてきた円周率が、 来年より「約0」になることが決定された。 文部省緒方屑男氏(63歳)は、「たまたま1の位で四捨五入してみたら0になった。 計算も楽だし、この方がベスト。落ちこぼれる生徒も激減する。」と述べた。たしかに、すべての円の面積が「約0」になり、 小学生の勉強が格段に楽になる。 これに対し反対派の代表である松島犬蔵教諭(49歳)は「これでまた日本人の学力低下が懸念されることになった。 五円玉と公園の円形噴水が同じ面積になるのは納得できない。」と反論。両者の議論は当分平行線をたどりそうだ。
三角形の面積の公式も 底辺×高さ÷約0 になりました。
約3がダメなのは桁数の問題じゃなくて、 無限に続く数字を便宜上途中の桁までしか計算しない というルールを教えられなくなるのが問題なんだが
>>159 約3ってのは、無限に続く数字を便宜上1桁までしか計算しない、ってことじゃないのか?
で、なんで円周率の話になってるの??
約ってすげえな!
約0ちゃんねる
164 :
デフォルトの名無しさん :05/02/04 10:50:54
=============================
:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
普通にπで教えれば良いのに…。 つか、今の中学の数学教師て、 どうしてπになるのかの証明できなさそうで怖いw 学生の前に教師の学力低下も深刻な問題だと思うのだが、 教育委員会はそう言う方面には突っ込まないんだな。 倫理的にも問題多いし…教師もなんだかなあ。
釣られませんよ
> どうしてπになるのかの証明できなさそうで怖いw
代入記号が = であることは数学的に証明できるのでしょうか?
定義より自明…(証明終)
代入記号が := で定義されていた場合、 やはりそれも数学的に証明可能でしょうか?
172 :
デフォルトの名無しさん :05/02/07 01:07:38
数学的には記号がどういう形をしていようが関係ないんだが・・・
mov ax, 10
数学的にはそうですか... 残念です…
定義は証明するものじゃないよ。公理も同様。 証明すべきは定理だ。定義というものは証明の前提になるものだ。 だから、定義を証明可能か、という疑問は全くの無意味だ。
たとえば、「負数と負数を掛けると正数になるのはなぜ?」 と言う質問の答えは「そうなるように定義したから」だが、 そう定義すると便利になるという合理的な理由がある。 確かに「証明可能か?」という質問は意味が無いが 「その定義に数学的合理性はあるか?」という質問なら 議論の余地があるんでない?
数学板によくある1+1=2を証明してください系のスレも同じだな。
>>176 > たとえば、「負数と負数を掛けると正数になるのはなぜ?」
> と言う質問の答えは「そうなるように定義したから」だが、
違うよ
>>176 >たとえば、「負数と負数を掛けると正数になるのはなぜ?」
>と言う質問の答えは「そうなるように定義したから」だが、
>そう定義すると便利になるという合理的な理由がある。
負数と負数掛けると負数になると定義してもいいのか?
>>179 定義するのは構わない。だが,それでは整数/有理数/実数の集合は,
定義された積の演算によって環の構造(特に分配法則)を持たなくなり,
役に立たない。
例:(-1)*(-1)=-1 と定義すれば
0=(-1)*(1+(-1))≠(-1)*1+(-1)*(-1)=(-1)+(-1)=-2
>>176 >そう定義すると便利になるという合理的な理由がある。
その合理的理由ってのが答えになる部分じゃないのか?
>>181 「不完全性定理の証明を "正しい証明" とは認めない」
と定義すると、数学はずいぶん便利になると思う。
つまり := は代入記号として合理性をもつのか? という話だな。
ってゆ→か→、代入記号ってさ→、矢印でイイワケじゃん?
どっち向きの矢印が代入記号に相応しいのか、もめそうな悪寒。
a :-> b マイナー言語にこんなのがあったような…。
:-<
代入に記号を使うことは認めません!
>>189 記号化しちゃいけないということは、予約語もダメということかな。
じゃ、こんな感じで不特定多数のフレーズを代入に使えるようにするか?
a ブチ込んでやろうという気持ち 0
b まだまだ入るぞという勢い 0
c ホッと一息 f(a, b)
return c
>>190 > return c → ×
イク----ッ! c
死ね
オブジェクト指向言語で obj1 = obj2; って書くと、これは obj1 と obj2 が全く同じものを指すようにしますって意味になるわけで、 これは本来の equals の意味に近くなると思うんだけど。
あなたの言うオブジェクト指向言語がどんな言語か知らんが、 obj1 = obj1 + obj2; のような、記述は出来ないのかね。
>>193 >obj1 と obj2 が全く同じものを指すようにしますって
それはどうかな?
>>193 それは、obj2をobj1という別名で呼ぶことにする、って意味?
そうだったら代入と同じように思う。
obj1とobj2が別個に存在してて、それを同じと見なすのは一般には無理じゃないの?
>>196 うーん、193じゃないんだけどなんと説明していいか。
C++でいう参照でない変数と参照の変数への代入の違いと言うか。
大抵のオブジェクト指向言語では変数は単なる参照なんすよ。
実体がどっかにあって変数はそいつの場所を知ってるだけ、
もっと抽象的に言うとオブジェクトにラベルをつけてるだけというか。
一口に「代入」つってもいろんなモデルがあるんで「代入と同じ」と
言われてもどうかなあ。
最後の行はオブジェクトの同一性と同値性と呼ばれてます。
Cの場合は変数に必ず実体が入ってるんでこういった問題は起きないんですけど。
なにポインタ? あれだってポインタという実体が入ってるでしょ。
>>193 一般的な代入と同じで、反射律は満たしているけど、推移律が満たされない。
a = b; b = c; としても、a != c でありうるから。
この点では同期的に同値性を維持しうるC++の参照の方が強力だと思う。
代入は述語ではないわけだが…
煽るだけで「どこがおかしい」と言えない
>>200 について
>>201 関数型言語のように、次ステップにおける同値性を宣言的に述べた述語という解釈もできるわけで。
で、そういった解釈をしても、参照の初期化のように同期的に同値性を維持していないと普通の数式における
=とは近くはならないよ、というような話では?あってるんだか間違ってるんだかは知らんけど。
しかし実際のトコC++の参照は実体が1つなんだから、同値性を維持するも何も同値に決まってる。
>>203 > あってるんだか間違ってるんだかは知らんけど。
根本的にまちがってる。
こんなことくらいで紛らわしいとか言うくらいならプログラミングなんかやめちまえ。
記号が混乱してるのはむしろ数学
x = 3 のイコールと x^2 - 6*x - 9 = (x - 3)^2 = 0 の最初のイコールが同じとは思えんよな
手続き型言語でいうところのスコープが違うからじゃない? x=3 のスコープは狭くて、次の問題では平気で x = 2 とされるかもしれない。 x^2 - 6x - 9 = (x-3)^2 のスコープはもう少し広い(可換環一般)と。 数学的に言えば x が自由変数か束縛されているかというような違い。 (∀x なのか∃xか)。
>>209 それは=の違いじゃなくて、式全体がトートロジーか独立公理かの違いでは?
ある法則によって並べられた式、 1=1 8=0 118=1 があります。 では、 18=□ □には入る数字は何でしょう?
要はFORTRANの利用する記号に < と > が無かったから FORTRANは比較演算子は文字を使用するようにした で、代わりに代入に = を使うようにしたので それが、多くの言語に広まったと
遅いあるいは既出かもしれんが 代入が「=」の理由は 変数を同じ値にするって事なんじゃないか? 例えば a=7 の場合は、変数aと定数7が等しい事とする p=g 変数pと変数gの値を等しい事とする
217 :
215 :2005/03/29(火) 11:26:55
>>216 a=a+1
aを1足した値と等しくする
218 :
215 :2005/03/29(火) 11:29:06
>>217 訂正
a=a+1
aに1を足した値と等しい事とする
主語も含めてきちんと書いてみれ
a is assigned as a + 1
221 :
デフォルトの名無しさん :2005/03/30(水) 05:50:17
222 :
デフォルトの名無しさん :2005/03/30(水) 07:20:02
やっぱ a+1->a が理想だが 使用済みなので a<-a+1 がわかりやすいとおもふ
>>222 それは a < -a + 1 という比較と区別がつかない。
APLの代入は←だな(注:<-ではない) 問題はAPLキーボードをここ20年くらい見かけないことだが....
foo : 42; コロンってよくね?
foo ≡ 42
>>223 Cで a+++b は (a++)+b か a+(++b) か区別がつかないが、それを問題と考える人は
少ないと思う。
>>225 それだ! コロンはいいな。
K&R がPascalの代入「:=」を一文字にしようと考えた時FORTRANに媚を売って
=の方を選んだのが敗着だな。
>>227 if (a = -func()) ...;
ってコードを考えたとき、
if (a<-func()) ...;
では優先順位から考えて不等号と解釈することになると思う。
しかし、括弧で括って代入と見なすようにすることができない。
< は代入のみに用いて、不等号は > しか使わないとか。
そんなアホな仕様にしたらもっと文句が出るだろ
ld a, a+1
a <-=☆ミ 10
>>232 それは、a ズキューン 10 と読めばいいの?
「えー するめいか じゅう」と発音します
a=a+1はa+=1
>236 プログラムの立場からはOK 数学の立場(1の意見)ではNG
それは19世紀の数学の立場でしょ。 今や表示的意味論や線形論理みたいなのもあるわけだから。
今やでもないし、間違っている。 purelyって知ってるか?
>>239 > purelyって知ってるか?
このスレのログ検索してみたが、そんな単語はみつからんかったぞ。
241 :
デフォルトの名無しさん :2005/04/26(火) 10:33:17
ノアだけは
mov
set
代入を := にして、比較を == にして = なんて使わない方が良い気がしてきた
所詮、プログラムと数学は別物なんだから そんなに深く考えるほどの事でもない。 「この言語ではそういう仕様になってます」 ですむ話だろ。 つーか、そんなこと言ってたら全ての演算子に ケチが付きそうだ。
なんで % で...
>>211 9
ちなみに、ある法則 =
『ある法則によって並べられた式、
1=1
8=0
118=1
あります。
では、
18=□
□には入る数字は何でしょう?』
という問題で□に9が入るような、任意の法則。
プログラムに興味があってC言語の本を読んだとき、 a = a + 1 の意味がわからなかった。 =は数学だと左辺と右辺が等しいという意味だからaを移項して 0 = 1 なんですかー? っておもた。
>>248 本論とは関係ないが
>C言語の本を読んだとき、
>a = a + 1
焚書せよ。
↑おまえって・・・
両方に同じ変数が出てくると不都合が起きるわけだ. a=a+1 Prologの単一化でもoccur checkの問題になる.
252 :
デフォルトの名無しさん :2005/05/04(水) 14:22:35
253 :
デフォルトの名無しさん :2005/05/04(水) 18:03:24
>よく使うものほど短い記号にすべき。 ↑こんなこと言うやつは、 専門学校しか入れず憧れのプログラマになったものの、 実はコードをたくさん打つだけの"使い捨て"であることに気づいてない"しあわせな奴"に決定。 コードの長さなんて、=か、:= で、たいして変わるわけじゃないのに。 昔は少しでも短くしたかったけど、今はそういう時代じゃないよなあ。 まあ、そういうことは、専門学校出の奴には分からんだろうが。 あ、こら、そこの専学出の君。そう、お前。こんなスレ呼んでいないで、もっと手を動かしな! (ニヤニヤ)
>>253 の主張:
Iterator が Enumeration を継承しないのはなぜですか。
"しあわせな奴"の言い訳:
Enumeration のメソッド名は不適切なものだと考えています。
これらは非常に長く、頻繁に使用されます。 メソッドを追加して
新しいフレームワーク全体を作成する立場から、名前を改善する機会は
利用すべきであると考えました。 もちろん、Iterator で新しい名前と
古い名前の両方をサポートすることもできますが、
それは価値のあることとは思われませんでした。
255 :
デフォルトの名無しさん :2005/05/04(水) 19:21:21
代入って a <- a+1 みたいな方がいいんじゃないか?
set a 1
じゃあそういうプリプロセッサ書けば
>>252 数学っぽい見せかけはいらないから
211の脳内をエスピングしてくださいと素直に書け
>>182 互いに矛盾するものも含む任意の命題を証明できるのは確かにある意味便利だが
役に立たないと思う
260 :
デフォルトの名無しさん :2005/05/28(土) 16:25:06
--- ---
261 :
デフォルトの名無しさん :2005/05/28(土) 21:19:26
mathematicaだと=と:=と==と===と->と:>とあります。
AppleScriptとか
Squeakは代入記号は「←」だよ。
264 :
デフォルトの名無しさん :2005/05/29(日) 08:24:45
265 :
デフォルトの名無しさん :2005/05/29(日) 08:48:46
/ は割り算記号で * は掛け算記号なのに /* */ はコメントだし *a はポインタになるんだぞ a->b はメンバを指すのに a<-b だと比較なんだぞ あまりに理不尽だ。 絶望した!
266 :
デフォルトの名無しさん :2005/05/29(日) 08:50:20
記号が足りないから仕方がない。 C++/CLIではポインタに^使ったりな。
そこでAPLですよ
>>19 そらperlの言語仕様が腐ってるだけだろ。
273 :
デフォルトの名無しさん :2005/05/29(日) 17:19:09
set(a, b);
MOVE A TO B.
Aの中身はnullになるとでもいうのか。実に直感性に欠ける駄目命名である>MOVE
LD (HOGE), A
>>276 当時の COBOL に null なんてないぞ。
と言うべたな突っ込みはおいといて
COPY A TO B.
ならいいのか ?
>>1 よ、
中学の数学の授業の時、
=を代入記号としても使うことを教わらなかったか?
あれだったら紛らわしくもなにもないわけだが。
等値判定は == 代入は=でいいじゃないか。
ものによっては等値を≡を使って表現することもあるようだが。
≡は定義として使っているようだ。
イコールの線の数が=よりも余分に多いのがいかにも代入記号らしくなくて
いいじゃないか。
≡は本当は恒真であることを意味するが。
ほかに a ≡ b mod c なんて使い方をして余りが同じって使い方もするが
280 :
デフォルトの名無しさん :2005/05/30(月) 05:43:10
let a equals 0.
281 :
デフォルトの名無しさん :2005/05/30(月) 06:20:00
数学じゃ代入記号なんてないでしょ
Σとか書いてた気がするけどなぁ i=0
>>281 中学の時に代入を表すには =を使うと教わったが
で、大学ではなぜか≡を「定義」と称した代入記号として使われいた かのような。うまい説明ではないが。
>>285 それって、定義によって論理的同値ってだけでは
Prologの場合は代入じゃなくて単一化だけど "is" というオペレータが近いかな ?- X is 1 + 2 + 3. X = 6
>>38 BASICだと代入も比較も=なんだけど代入は実はこれは
「LET A=1」のLETが省略されているもので、この場合=はステートメントの一部であって
式の一部ではないのです。英語的には「Aを1にする」って感じですね。
これだと「LET A=A+1」なら「AをA+1にする」だからなんとなく自然。
だけどタイプが面倒なのかメモリの問題もあったからなのか、
LEVEL1(2かな) BASICのころからLETを省略可能だった。
だからCだとif(p = fopen())みたいに代入式をifに書けるけど
BASICだと書けない。IF文中の=は比較だとみなされる。
あと「A=B=1」って書くと、左の=は代入文、右の=は判断式になるので
「Aは(Bが1と等しいか)」ということでAには真か偽(-1か0)が
入って、Bの値は変わらない。
この辺の仕様はVB6やVB.netでも一緒です。VB.netにLETというキーワード
自体はないですけど。
だからどうだというか、だからこそ紛らわしくてBASICの欠点なんですが
ただのトリビアみたいなものです。
>>288 > ただのトリビアみたいなものです。
この板見てるちょっとロートルの奴には「常識」だと思うが…。
きっと言いたかったことは 誤>ただのトリビアみたいなものです。 正>ただのトリビアルなことです。
? が PRINTの省略形ってMSX-BASICだけだっけ? LISTとるとPRINTに展開されてるんだけどさ
>>291 日立ベーシックマスターレベル1以降の殆どのBASIC
293 :
デフォルトの名無しさん :2005/06/03(金) 23:15:57
なんで?がPRINTの省略形として使われるようになったのか 歴史的背景を知っている人は、ここでトリビア披露しなさい。
294 :
デフォルトの名無しさん :2005/06/03(金) 23:57:07
昔はキーボードに「プリント」というキーがあったとりびあ
>>293 昔のBASIC環境は
行番号をつけて一行入力するとソースリストとして保存
つけないとその場で命令を実行するしくみで
コンソールとエディタが混ざったような
インターフェースだった。
PRINT命令の省略形?は
? 1 + 2 * 3
7
OK.
みたいにして
一行電卓や変数内容の確認で便利だった。
>>295 で、それが?=PRINTということになった理由なのかい?
? 変数で 変数ウォッチってことじゃない?
298 :
デフォルトの名無しさん :2005/06/05(日) 06:06:32
299 :
デフォルトの名無しさん :2005/06/05(日) 15:13:14
「逆ポーランド記法」と呼ばれる方法
300 :
デフォルトの名無しさん :2005/06/05(日) 17:35:20
逆ポォーーーーーーーーーーーッ!
301 :
デフォルトの名無しさん :2005/06/05(日) 17:40:41
再代入がなければ、A=5 が定義であっても代入であっても どうでも良いんだけどね。区別する意味がない。 「=」が再代入記号として使われているのは意味的に変だが。
302 :
デフォルトの名無しさん :2005/06/05(日) 17:41:51
ヌルポォーーーーーーーーーーーッ!
304 :
デフォルトの名無しさん :2005/07/04(月) 00:38:07
=ボブチャンチン
305 :
デフォルトの名無しさん :2005/07/06(水) 15:16:20
円周率がπというか3.141.....なのは定義じゃないだろ 円の定義と円周率=円周割る半径からもとまる低利だろ
円周率の有理数化に成功 円周率はこれまで無理数であるとされてきたが,ある条件下においては 有理数になることが,マサチューセッツ工科大学のオニオシダシ教授に よって発見された.よく知られた定数に疑問を投げかけられた数学界に, 衝撃が走った.
307 :
デフォルトの名無しさん :2005/07/06(水) 16:38:13
pureLISPならいいわけか
308 :
デフォルトの名無しさん :2005/07/06(水) 19:17:18
ところでPrologってきもくない? 論理なんて抽象的なもの扱ってる割には 処理系の中の動作まで考えてプログラムしなきゃいけないなんていかれてない
ところでFortranってきもくない? 整数なんて数学的なもの扱ってる割には 処理系の中の精度まで考えてプログラムしなきゃいけないなんていかれてない
【二番煎(せん)じ】 一度煎じたものを、もう一度煎じた△茶(薬)。〔以前の繰り返しで、新味の無い物の意にも用いられる〕 Shin Meikai Kokugo Dictionary, 5th edition (C) Sanseido Co., Ltd. 1972,1974,1981,1989,1997
313 :
デフォルトの名無しさん :2005/09/15(木) 13:35:18
例えばxに無量大数を代入したとしてx*2すると2xになるじゃん? あれ、無量大数超えてね?
>>313 超えてません。
無量大数は 10^68 です。
上の方を読んでて リーマン曲面上では円周率がちょうど2になる場合があることに気がついた
>>313 >>314 何が言いたいの?
1万*2が2万であるように、1無量大数*2は当然無量大数だよ。
数学概念で言う、無限大の話をしたいなら、無限大*2は当然無限大でしかないけど。
IEEEではdouble実数に無限大(+Inf)を代入できるけど、これを2倍できるかは知らん。
317 :
316 :2005/09/15(木) 14:11:04
>1万*2が2万であるように、1無量大数*2は当然無量大数だよ。 1万*2が2万であるように、1無量大数*2は当然2無量大数だよ。 以上訂正まで。
>>315 リーマン曲面ってなんだっけ。
地球を球とした場合の、赤道の長さは北極を通る直径の倍になるけど……
>>316 恐らく∞と10^68の違いだと
言葉と数字の違いでしょう
320 :
316 :2005/09/16(金) 11:24:22
ますますわからんレスが…… 無限大と無量大数を混同しているのだろうか……
無量大数っていう言葉の本来の意味は無限大のことだけど 塵劫記以来無量大数っていうのは 特定の有限の数をさす名前になっちゃってるからなあ
ついでにジョ(禾+予)という単位は実は誤字だったらしいが
323 :
デフォルトの名無しさん :2005/11/07(月) 20:40:22
そもそもなんで=が代入なんだよ = だろ
何故Algolの話が出ないのか
もし LET A, B だったら、略して A, B が代入を表す書き方になったんだろうな
そんなBASICだけの話を持ち出されても。 FORTRANでも代入演算子は = でしたが何か もっとも等値演算子は .EQ. だったけど
初期のFORTRANには論理演算子は無かったのだよ
代入は=じゃなく:=、 =は等号なのだが... 出る厨
普通 cmp ○○ ×× je △△ より mov ○○ ×× を先に定義したいと思うだろ?
イヒヒ
>>1 は Pascal と Prolog を勉強する事。
嫌です
let 5 to a; let a+1 to a; でいくね? 余談だがperlで(a,b)=(b,a)で値の入れ替えが出来ると聞いたときには 素晴らしいと思ったが実際そんなコード書く機会無いからトリビアだよな。
Lisp でも (let ((x y)(y x)) ...) とはあまりしないな。 (let ((x y) (y (f x))) ...) の類なら使うような気がする。
>>329 そういえば算術ifのFORTRANでプログラム組んだことあるな。
IF A - B, LABELA, LABELB, LABELC
書式は完全に忘れたけどこんなかんじ
式の結果がマイナスだと、LABELAにジャンプ。
式の結果がゼロだと、LABELBにジャンプ。
式の結果がプラスだと、LABELCにジャンプ。
ヘェ〜...もうFORTRAN 30年以上使ってないから忘れてるが、 IF A .GT B とか IF A ,EQ B とか IF A .LT B なんて書いてた気がする。
>>329 ×初期の
○一部の (Fortran III 以下、旧 JIS FORTRAN 3000)
341 :
デフォルトの名無しさん :2006/05/17(水) 18:47:53
<- 使ってる言語なかったっけ?
342 :
デフォルトの名無しさん :2006/05/18(木) 00:21:27
もし ASCII コードに "←" 記号があり、それがキーボードの記号にあったなら、 こうはならなかったかも知れない。
343 :
デフォルトの名無しさん :2006/05/18(木) 00:23:03
total+=score[i]; ↑ これってかっこよくね? +=とか*=とかすげーかっこよくね?? でも-=とか/=とか%=はかっこわるくね?
344 :
デフォルトの名無しさん :2006/05/18(木) 01:09:01
>>343 そういや~=とか||=とか、かなり違和感のある代入演算子もあるよな。
Pealで良く使われる $hoge ~= /正規表現/ 違和感ありまくり
347 :
デフォルトの名無しさん :2006/05/22(月) 16:25:19
C++が -> と <- をオーバーロードできるって仕様だったらどんなにステキな記述ができることか……
それ演算子?
->は演算子だな
>>345 =346
正しくは=~
使ったこともないのに批判するとは恐れ入ったよ。
演算子の意味も分かってないんだろ、どうせ
>>350 鬼の首でも取りましたか?
複合代入演算子の話をしているんだから、^= の typo じゃないか、とは
考えなかったんですか?
ネタという事に(ry
よほど悔しかったんだな・・・
≅
356 :
デフォルトの名無しさん :2006/06/06(火) 00:49:37
=にふたつ意味があるんですか?それは数学でもそうですか? 「数学分野の関数でx=3のとき」のってあったら、=は等号では なくてxと3を取り替えるを意味するんですか?
357 :
デフォルトの名無しさん :2006/06/06(火) 00:58:15
=を比較にして、==を代入にすればよかったのにな。 いや、==も紛らわしいか、<- にすればいいんじゃね? A <- B
>>357 C でそれやると、コンパイラにとって紛らわしい。
Delphi は := が代入で = が比較
話、変わるけど、 copy_memory(void* FROM, void* TO, size_t length) copy_memory(void* TO, void* FROM, size_t length) どちらの方がいいと思う?
memcpy, strcpy がそうであるように copy_memory(void* TO, const void* FROM, size_t length)
363 :
361 :2006/06/30(金) 21:26:42
やっぱり、普通の人の感覚はTO,FROMの順なんですね。 FROM,TOの方がしっくりくるような気もするのですが。 いずれにせよ、普通の人の感覚に従っておきます。 copy_memory(TO←FROM,length) copy_memory(FROM→TO,length) のように書ければ、 安全性高まる気がするようなしないような。
target object が prime parameter
なるほど
単に、言語の標準ライブラリに合わせるのがいいんじゃ? 慣習的なもんだけど、読み比べるときに違和感が出にくいだろうし。
367 :
362 :2006/07/03(月) 12:03:13
>>363 や、どっちが普通ってもんではなくて、どっちかに統一されてないと
混乱するから。で、どうせなら標準関数に合わせとけばいいか、と。
target object が prime parameter
なるほど
from -> copyMemoryTo( to, length );
>>361 TO.copyfrom(FROM, length) なら明快では?
TO = From.copy(length);
>>363 > FROM,TOの方がしっくりくるような気もするのですが。
move reg(A), mem(X)
こんなケースは、moveを他動詞と考えて、
move reg(A) to mem(X)
という風に読むので、
英語圏の人間にとって、from, toの語順以外あり得ない。
実際そう言う考えでオペランド順が決まっているアセンブラが多い。
CP/Mを知らんようだな
よくもまあ、自分の拙い知識で「from, toの語順以外あり得ない。」とか 恥ずかしげもなく言い放てるものだ。
move to ... from ... なんて構文いくらでもあるよな。
↑どうみても自動詞です。本当にありがとうございました。
>>377 move ... to ... from ... ならいい?
SVOC でも SVC でもいいんだよ
代入が=なのは別にいいが、7Bitアスキーに≠、≧、≦がないのが許せん。
手続き型プログラミング言語によるプログラムって、一部に制御構文と宣言が 出てくる以外以外、基本的には代入ばっかなんだよね。だから、簡単に 入力できて、記号の数学的な意味との乖離が少ない代入記号って言ったら、 やっぱり = あたりが妥当なんじゃないの? その意味で、Pascalにおいて、比較演算子(=)より明らかに出番の多い 代入演算子に、より長い記号(:=)を割り当てたのは、ミスだと思うな。 あくまで、「代入演算子は簡単に書けるべき」という立場に立脚するとね。
382 :
デフォルトの名無しさん :2006/12/24(日) 01:47:37
代入の = を一個以上の空白文字とする。 例 X=Y+Z は、 X Y+Z;
:=
=が代入だって言うのが気に入らないなら、アセンブラを使えばいい! マクロアセンブラで、=が出てくるようなら、コード直打ちでプログラムだ! それが嫌なおいらは、そんなことには拘らないがな
MASMでも = は代入なんですが・・・
代入はmovかequだろ。=なんて使った事無い。使えるけど。
= と EQU の違いってなんだっけ? アセンブラなんて最近使ってないから忘れた。
>>387 EQUは名前に式を割り当てる。数値を割り当てた時に再定義できない。
=は名前に数値を割り当てる。再定義可能。
定数の定義を代入とは言わない 関数型言語信者にどやされる
>>276 > Aの中身はnullになるとでもいうのか。実に直感性に欠ける駄目命名である>MOVE
C++にmove semanticsキタ-
392 :
デフォルトの名無しさん :2007/02/12(月) 18:51:12
普通に、数学で関数を扱うときやる「a=2のとき〜」とかの影響でしょ。 =に代入の意味を認めなかったら、現代数学の記号表記が 間違ってるってことになるじゃんw
数学記号だと a ← 2+a になるのかな。 #厳密には片羽の矢印か?
395 :
デフォルトの名無しさん :2007/02/12(月) 21:56:24
>>393 だからそれもokということでしょ?“代入”という意味でだけど。
でも明確に区別するために別の記号を作るべきだとは思う
397 :
デフォルトの名無しさん :2007/02/12(月) 22:40:51
極限だすときにxにx+hとか代入するよな x=x+hのときでいいんじゃない?
x=lim(x+h) なら見たことある。
h→0
400 :
デフォルトの名無しさん :2007/02/13(火) 10:25:15
どうやらPascalが正しいらしい
0 = 2 ?
虚等号
>>405 つまり、ほとんどの場合正しくないってことだよな?
408 :
デフォルトの名無しさん :2007/08/17(金) 23:47:08
10 LET A=1 20 LET B=2 30 LET C=A+B 40 PRINT C 50 END
document.write(C=(A=1)+(B=2));
TIの電卓では a ← 1; のようなstore演算子が使われてた
-> ポインターとなった
program test real, dimension(1:5) :: x, y x = (/ 1., 2., 3., 4., 5. /) y = x**2 - 2*x + sqrt(x) print *, y end program test
<- は a <- bが a < (-b)(a 小なり -b)って解釈されちゃうからダメ。
b ならば a
415 :
デフォルトの名無しさん :2007/08/18(土) 23:57:21
=って便利な記号だよな
俺の財布 =
>>1 の財布
としてもプログラムなら1の財布はちっとも傷まないで
俺様はリッチになれる(?)わけで、非現実的である
コピーならそうだが、参照の代入なら 二人で財布を共有してるだけだな
それを解決するために様相論理というものがあるんだけど プログラミングに応用はまだされてないな。
418 :
デフォルトの名無しさん :2007/08/19(日) 09:16:59
Pascal 言語は 「:=」 を代入としたが、誰も見向きもしなかった。だってヘタなAAにしか見えないもん。
<:3=
そういや、昔のBASICはLET A = 1みたいにLETを書くのもあったな。
最近のBASICはLETで書けないの?
422 :
デフォルトの名無しさん :2007/08/21(火) 13:24:34
BASIC にもいろいろあるが、Windows に最初からインストールされている VBScript には LET は無くなった。SET ならあるが。
423 :
デフォルトの名無しさん :2007/08/21(火) 17:28:42
LispやHaskellには局所束縛であるね。 Javascript2からも導入されるんだっけか。
>>407 floatなら無限大(NaNだけど)があるから、a=a+2の解はある。
>>417 普通にあるぞ。
realtime, multi-thread, packageを含めた論理型言語。
static analysisでも利用されてるし。
>>420 LETはもともと文の最初のtokenを見て、
文の種類を決める事ができるように導入されたが、
構文解析の技術が上がって必要なくなった。
NaNは無限大じゃないぞ
426 :
デフォルトの名無しさん :2008/03/14(金) 04:56:59
インド人が食うヤツやろ
>>424 >floatなら無限大(NaNだけど)があるから、a=a+2の解はある。
a がNaNなら a と a+2 は等しくない。
それどころかNaNはNaNを含むどの数値とも等しくないので a ≠ a となる。
=の左右で評価時刻が違う系なんだから等式でいいんじゃないか
430 :
デフォルトの名無しさん :2008/03/20(木) 01:36:52
おいらの環境だと、、、 LD CF113 MOV &1 1 END とかだぜw
多重代入のsyntax sugarがあれば :=でも大して手間かわらないんだよね aa=bb cc=dd ee=ff ... みたいな書き方しか許さんぜよってんなら:一個分×代入文の数で 凄く面倒になっちゃうんだけどさささ。
a=b=c てaにb=cの評価を入れるんじゃないの?
433 :
デフォルトの名無しさん :2008/12/12(金) 03:44:33
連カキコスマソ ところで、trueは-1、1どっち? 0は無いと思うけど
>>19 ==使うときは 数字先が通例だろ
1==&i だったらとオらねえし。
バ化し
>396 偽の命題
>432 その式は言語によって意味が違う BASIC系だと「bとcを比較した結果をaに代入」だが C系などは「bにcを代入し、代入した値をaにも代入」になる
俺のファミコン環境では LDA 01 ゲームボーイ環境では LD A,1
439 :
デフォルトの名無しさん :2008/12/19(金) 03:04:06
6502 64180
なんで、ファミコンとかの話がww
ノーブラやっほー
443 :
デフォルトの名無しさん :2008/12/21(日) 01:05:01
新しい記号を作ればいいんじゃね? スレタイから遠ざかるけど
COMPUTE A = 1 IF B = 100 THEN MOVE B TO A END-IF
一番多く使うから1文字のが良いと言うけれど、=はShiftを押す分だけ冗長 1キーだけで行ける記号がなお良い x : 1とか いやむしろいちばん左に変数置いた時点で代入って分かるんだからスペースだけでいい x 1
>>445 >いやむしろいちばん左に変数置いた時点で代入って分かるんだから
お前はなんの言語の話をしているのか。
>いちばん左 ぷっ・・・
448 :
デフォルトの名無しさん :2008/12/21(日) 20:24:59
>>445 欧米で普通に使われてるASCII配列だと
: はshift押すんだよ
= はshiftいらない
449 :
デフォルトの名無しさん :2008/12/22(月) 00:09:34
そこでテンキー部に「=」があるPC98キーボードですよ
↑ シロウト
LISPとか代入記号ないし
こういう議論はナンセンス。そんなことを言い出したら、 なんで人類は生きているのか?なぜ等価を表す記号は = になったのか? なんでプログラミングなんてしてんの?デジタル機器は、なぜ0と1の 組み合わせの仕組みを使っているの?
道産子の俺がゴミを『投げる』と言ったら標準語の連中に 「ゴミって『捨てる』ものでしょ?バカじゃない? マジでゴミを『投げる』時にはどう表現して区別するのよ?」 なんて言われて虐められたのと、似たような話だな。 未だに靴下は『履く』以外の表現が受け入れられない。
>>452 4年近く前に勃ったスレで、レス数も400を超えたところで
今更そういう書き込みもナンセンス。
>なぜ0と1の組み合わせの仕組みを使っているの?
飽和領域でスイッチングする方が回路が簡単になるから。
イコール記号が代入の意味で使われる論理的な理由が無いにしろ、 議論がナンセンスということはないだろう Fortran 等で、代入記号に = を採用したのは、等価とのアナロジーと 最初の Fortran には比較演算がなかったので、 = を代入の意味に 使って混乱がなかったせいだと思う。 まあでも紛らわしいよね 初めて、A = A + 1 という文を見たとき、凄く悩んだ
>>453 いや、東京でも靴下は『履く』でしょ。手袋じゃなくて?
>>456 あぁ、そうです。手袋でした。
でもやっぱり手袋も『履く』以外無いですね。
手袋は投げつけるものだな、決闘の場合
投げるのは靴だろ そして華麗に避ける俺
このスレに大統領経験者が!
よっ、大統領!
めりくりあけおめことよろ
おにそと
あかぼん
おましね
467 :
デフォルトの名無しさん :2009/01/02(金) 15:00:40
やっぱり=は別に等価記号の意味を損なわない、という説が一番説得力あるかな。 問題は記号=じゃなくて、変数の概念が数学と違うだけ。 a=a+1 は数学では変数aと変数a+1が等しい、という意味でも プログラミングでは、これから定義する変数aの値は 既存の変数aの値に1を加えたものに等しい、という意味になるだけのこと。 みんなあたまわるいなあ。
↑ ようするに、 それはそれ。 これはこれ。 そう言いたいだけなんやろ? この思考停止ヤロウ!
副作用っていうのがやっかいなんだよ 普通の手続き型言語だと環境ってのを意識しないからね
何言っちゃってんのこいつ?
>>469 はC、C#やjavaなどのC言語ファミリーしか知らないヤツなんだろ。
>>467 >既存の変数aの値に1を加えたものに等しい
かどうかは解らないわけだが。
a = a + 1 を等式としてみる場合、 左辺のa と右辺のaが同じものだから、1 を足した瞬間右辺と 合わなくなる。そこに違和感があるんだよ
>等式としてみる んじゃねえよ
>>473 それは「a」と「=」と「+」と「1」の実装によって変わってくると思う。
例えばrubyじゃ次の等式がtrueになる事だってある。
a == a << 1
>>473 その "a" ってのはプログラミング言語では
「"a"という実体」(完全に同期されているような同一性)を指すものではなくて
「"a"という名前で表わされたデータ内容そのもの」(同期性は共有していない)だから
a = a + 1 は数学的には、実体aの複製に対する任意の演算からなる数列の要素a_nにおいて
a_1 = a_2となる、ってことだよ。(a_2 = a + 1)
いやそんなことは改めて書くまでもなく分かってるって
forthなら代入式なんてない。(よね?
言語設計者は=と==が必要になった時点で間違いに気づくべきだった。 明らかにイコール気号の意味が2つある。 今後出てくる新しい言語で==があるのは糞だ。
>>479 >明らかにイコール気号の意味が2つある。
お前は何を言っているんだ
むしろ「きごう」で「気号」に変換するほうが難しいよなw
CやDelphiはすぐ慣れたがVB.NETは未だ慣れず
<:= イカ
484 :
デフォルトの名無しさん :2009/10/20(火) 00:35:09
等価比較演算子を廃止すればバグは起きない。 代入=は無いと不便だが、==なんて要らないだろ。
代入 ← 等しい = 等しくない ≠ 以上 ≧ 以下 ≦ これならわかりやすい
486 :
デフォルトの名無しさん :2009/10/20(火) 04:31:56
R 代入 <- 等しい = 等しくない <> 以上 >= 以下 <=
>>485 確かにASCIIコードに拘る必要はもう無いのかも知れん
489 :
デフォルトの名無しさん :2009/10/21(水) 11:14:34
>>487 1文字ごとに、一々、IME起動するのは…。
確かに、近年、入力支援が充実してきてはいるけど。
代入 << ビットシフト インラインアセンブラ
なでしこみたいに変数名とか全部日本語にすれば←=≠≦≧ですむ プロポーショナルフォントなら全角でも読みにくいことはない
そんなもの使わなくても cpp でいいんだろ
俺も解らん プリプロセサがどう関係するんだ
a に b を代入するってのを a cpp b って書けばいいって事では?
そうか。 代入 (´Д`) 比較 (・∀・) 否定比較 (・∀・!! にして、プリプロセッサ咬ませればいいんだ。 おまいら、頭いいな。
今時オペレーターを定義できない言語はカス 日本語変数名ってさ、 設計側からしたら、「対応」じゃなくて「制限解除」なんだよ
>>498 >今時オペレーターを定義できない言語はカス
再定義できる言語はあるが、一から定義できる言語はとても少数派だと思う。
>設計側からしたら、「対応」じゃなくて「制限解除」なんだよ
実装側からしたら、まごうことなき「対応」だ。
大規模なチーム開発するときのことも考えろよ オレ様ルールを増やされちゃたまらん
>>499 演算子前置のLisp系や後置のFORTH系を除いても
PrologからMETAFONTに至るまでいろいろあるよ。
>>500 APLみたいに乱用されるとアレだけど
Fortressぐらいならいいんじゃね。
<> != ~=
「代入」と「等しい」を数学的に区別する必要があるの?
多分、数学には x = x + 1 って代入はないんだよね?アリなの?
再帰的な代入式ね。 その式を見てフィボナッチ数列とかをぱっと想起してしまうんだけど・・・
そもそも数学には「代入」ってあるのか? オレは工業高卒だが、数学の授業に代入文なんて出てこなかったぞ。
「a=-2のときa^2+5a-2を求めなさい」とか二次方程式の代入法とか
その「a=-2のとき」ってのは、代入なのか??? aの中身が-2のとき、っていう「比較」なんじゃないのか?
ああ、言ってる意味がわかった。
>>507 たしかにその代入は学校で習うが、
それは式「a^2+5a-2」のaに-2を代入するのであって
式「a=-2」のaに-2を代入する問題じゃ無いだろ。
このスレで言う代入は「a=-2」
みたいな、変数にある値を入れることだろ。
学校の数学の代入問題とは少し違うな。
「a=-2」という式を、数学では単体で使うことがあるのか。
数学で「a=-2 の解を求めなさい」なんて問題が出るのか?
∞ Σ i=0 ←
全く同じ事を言っていると思うのだが。
その点Haskellは厳密でa=-2は「aを-2に束縛する」って言い方をする。
513 :
デフォルトの名無しさん :2009/12/11(金) 01:22:18
>>508 比較ではないでしょう。数学でもそれを「代入」と表現していたはず。
substitutionとassignの違い。
数学で普通に使われる=は、普通は二階述語論理式 つまり「かつ」「または」とかと本質的に同類のものだよ
<-
なんだ、勝俣と同じかあ
>>115 >
>>111 >
> if(a ← 5) なら、問題ないだろう
たしかに。
ASCII文字にいつまでしばられるんだろう。
ASCII文字に、この文字あったらなあ、、、というのは結構ある。
←はふつー、代入をイメージするもんだと思うが。 (だから APL も代入記号として使われる)
フローをイメージしちゃう。それも数学的にはけっきょく同じか?
参照だと a → 5 のがしっくり来る気がする
こうやって矢印の向きによって意見が違うからでしょ。 ていうか同じような議論が上であった気が。
524 :
デフォルトの名無しさん :2009/12/16(水) 17:35:40
A = 5 Aに5を代入するということは、 A == 5 Aと5とが等しくなるということで、 けっきょくは同じことでは? というのは数学的に素人認識かな。
shl shrという演算子があるならreferっていう演算子があってもいいかもね
別にヘボでもなんでもいいよ。金を稼げれば。
>>524 A==5は命題だけど、A<-5は命題でない
:= ←バカボンのパパなのだ
「.」 は小数点なのか、文章の終わりを意味する句点なのか。 いったいどっちなんだよ!
530 :
デフォルトの名無しさん :2010/07/04(日) 17:02:07
>>527 でも、A <- 5は、Aを5と定義する(A := 5)ということだよね。
つまり、Aは5と等しい値になるわけで。
このスレまだ続いてたんだ
532 :
デフォルトの名無しさん :2010/07/05(月) 20:01:29
x = 10; これから先のxは10と等しい x = x + 10; これから先のxは、これまでの x + 10 に等しい と考えれば、なんら問題ない
変な記号を山ほど使う変態言語があって、その後継では改められてたよね つまりはそういうことだ
rubyの悪口はそこまでだ
比較するときに使う方を変更すればいいんじゃねえかな? A .equ. 5 A .gt. 5 A .lt. 5 A .not. 5 こんな感じに、
>>535 パンチカードの束抱えて計算機センターまで電車で通ってろ。
なるほど、FORTRANだからパンチカードと計算機センターなのか
541 :
デフォルトの名無しさん :2010/09/23(木) 00:27:04
へえ
それよりも、なんで掛け算が * なんだよ!×だろフツー。 割り算も、なんで / なんだよ!÷だろフツー。 つくづく、むかしのプログラム言語の発明者はバカばっかし。
asciiにはどっちもないからねぇ。
ASCII ってのは、アレかい。アメリカン・スタンダード・なんとかなんとか、ってやつかい。 アメ公はコンピュータで掛け算割り算をしようとは思わなかったんだろうか。 あいつら、苗字と名前と逆に書いたり、日付を日・月・年の順で書いたり月・日・年の順で書いたり コンピュータに不向きなことばかりしやがって。 バカばっかし!
>>544 本当に昔にはプログラミング言語自体が無いしな。
名前や日付の並びはただの文化の違いだ。
向こうも日本に対して同じこと + 「漢字ウゼー、コンピュータに不向きなことしやがって」って思ってるぞ。
欧米文化圏なら割り算に/も割りと自然だしね。
>>542 は東京でも標準語を話さず大阪弁丸出しで押し切る糞関西人
>542のどこが大阪弁だよ。あんな小汚い言葉と一緒にするな。 >542が下世話だと言う点だけは同意。
日本にも和暦があるし、むかしは旧暦の暦があったんだぜ。 だがシンチューグンのマッカーサーが無理やり、今の西暦を強要しやがった。 だが日本はアメ公のいいなりになることはなかった。 年・月・日の順が合理的だと判断したんだ。 きたるべきコンピューター社会への先見の明があったんだ。
いまでも役人は和暦にこだわってるがな
日本は大きいほうから辿るように表記するのが基本だよね 日付は年月日、住所は県・市町村、名前は姓・名
>>434 バカはおまえ
それ読みにくいし変数との比較の時は意味ない
>549 ISO 8601は、日本の勝利?
>>544 後付けでの思い上がりイクナイ!!
ASCIIは、基本、タイプライター由来だからね。
(タイプライターからコンピュータに替わった時、なんで*/を×÷にしなかったのかって疑問は残るけど。)
年月日−日月年は、ビッグエンディアン−リトルエンディアンと同じで、どちらが正しいとは…。
(月・日・年は確かに理解しがたいけど。)
↑ おまい、ビッグエンディアン−リトルエンディアンの意味を理解してない
それを言うならシステムロケールだな
それよりも、月・日しか書かないやつ(ブログとか)や 2桁月・2桁日・2桁年を絶滅させたい
>>555 ---------
((((((((( おまい、ビッグエンディアン−リトルエンディアンの意味を理解してない )))))))))(キリッッッッッ!!!
--------------(キリキリッッ!
そんなんだからゴミなんだろ
そんなんだから糖質なんだろ
560 :
デフォルトの名無しさん :2012/02/08(水) 18:48:49.88
r-、' ´ `ヽr-、 ィ7 /l: ハヽハ トヾ 駄スレを沈めることはこの俺が許さん! '|l |'´_` ´_ `| || 信念に基づいて行動する。 | |´ヒ} ヒ}`! l| それを人は正義と言う。 __ノ゙). 从 l, _'_. |从 今俺が行ってることは保守ではない、 ,_'(_ ノ_ヽ ヾl.> - ,イ;リ 正義という名の粛清だぁ! { f:テ} {'f:テ}',/\ヽ--//ヽ ヽ,r─‐ 、ィ .、、 i l>Y<! i '、 バーニング! / iゝ_ノ iヽ /l |l l ', lンヽ/ムノじ
パスカルは := じゃなかたっけ?
:= に限るよな
pascal厨は死滅した
565 :
デフォルトの名無しさん :2012/02/12(日) 23:13:39.93
普通に考えて、:=とかいちいち打つよりも、 =だけの方がタイプする手間取らないからっしょ。 紛らわしいと思うのは最初だけじゃないか? 慣れれば大丈夫だとおもうんだけども
566 :
デフォルトの名無しさん :2012/02/21(火) 12:41:48.12
J言語の代入は=:と=.
567 :
デフォルトの名無しさん :2012/02/21(火) 17:00:04.99
letさんは姿が見えなくなったけど 代入には今でもletさんが力が宿ってる
記号使って悩むくらいなら move a to b でいいじゃん
それはそれで 「AからBに動かすんだから、その後Aの中身はなくなる」 みたいな勘違いが生まれるだろうから 書くなら copy a to b じゃないかな
copy from A to B.
COBOLの代入が MOVE A TO B だったっけ
575 :
デフォルトの名無しさん :2012/10/07(日) 20:27:13.80
糞スレageんなカス