><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
hoge.fuga();hoge.piyo();で、fuga();が本来void fuga();でPascalでprocedureとするものであるのであれば、それはhogeに「何らかの操作をする」であって、hogeを加工した複製(例えば集合であるhogeの部分集合を返す)みたいな意味は持たないよね?><そういう意味を持つのであればそれはprocedureになるはずは無く必ずfunctionになるんだから><
ていうか、説明正しいかわかんないけど、procedureである事=副作用がある?><そのオブジェクト等の状態が変化する(させる)(可能性がある)と言うことになるんじゃないの・・・?>< そこで無加工の集合を返す(?><)みたいな表現になるのはまずくない?><
Linqほとんどわからんだけど、Linqに手続きに相当するキーワード(?)ってあるの・・・?><
?><;
もしかして、hoge.fuga();hoge.piyo();をhoge.fuga().piyo();みたいに書きたいってこと?><;
というのも、たとえばfoo.set_bar(bar()).set_baz(baz());みたいな式を書いたとき、 bar() と baz() の評価順序って定められてない気がするんですが、どうでしたっけ
いやこれは危険じゃないですか
C# / Delphi人的にはそんな事して何がうれしいのかさっぱりわからない・・・><
Pascalがわりと『そのまんま書く』って文化なのも影響してそう?><
@[email protected] やっぱり不明な参照先を示すポインターを示す予約語があると便利なんやね……
アンダース・ヘルスバーグはDelphiでPascalの仕様どおりfunctionとprocedureをわけたの後悔してC# ではわけるのやめたってどっかで読んだかも><(都市伝説かもしれない><;)
procedure hoge begin....end
function fuga begin...end
って書くわね<Pascal
そもそも関数と手続きを同じ構文で書こうとしているのが頂けない
「戻り値のない関数」って凄い矛盾したこと言ってるよね
Cで言う所のvoid*に相当するDelphi一族(FreePascal含む)にあるPointerって名前の標準の(?)型(型が不明なポインタを扱う時の型)、ISO 7185 :1990斜め読みしたけどそれらしき記述無いっぽいからたぶんPascalの規格上あるものじゃなくボーランド系の方言なのかな?><
Pascalだとどうなってたっけ?><と思ってぐぐったら、Delphi一族(Free Pascalとか)の場合はPointerってそのまんまの名前の標準の型になるらしいけど、Pascalそのものの仕様なのかDelphi一族の方言なのかわからない・・・><
void*って番地かも?><(?)
これは差があるという話であって void * が虚無の描いてある紙に喩えられるということではないぞ
void と void* は、「虚無」と「虚無が描いてある紙」くらいの差があるよ
void *型の関数でも return 必要なん
思考の /dev/null