新しいものを表示

string GetDivideByXinString(int x)
ってxで割った結果を文字列で返すやつ(命名の英語まともかはわからない><;)があったとして、それは副作用があると判断すべきか否か><;

C# のトンデモ本は知らないけど、Javaのトンデモ本は定期的に出て話題になっておもちゃになってる気がする><;

(別の話題)
hogehogeの技術書を(どれでもいいから)読むって課題、トンデモ本を踏むリスクありそう><

よくわからないになったけど、toInt() toString()は、架空の環境のそれぞれ、整数にしたやつ返すやつ、文字列にして返すやつ という一般化した話ではなく、
「何らかの特定の環境(Rust?><)の実際にその名前の関数の実際の仕様がそうだ」に限りまくった話かも?><;

orange さんがブースト

0除算エラーもよくやらかすww あれも副作用(泣)

orange さんがブースト

hoge.toString()の toString()は ほとんど を文字列として出力することができるので、副作用がないと判断してます!
(Rust言語だと、 debugを実装してないとエラーになるんだけど、これはコンパイラが事前にチェックするので副作用になれない)

一応、これをわざわざ説明しなくてもいい人が議論してる前提での例示><;

スレッドを表示

(一応><)
例えで出した、動的型付け云々の 1+"hoge" は、リテラルをどういう型に解釈するのか?と、異なる型(あるいは同一の型)同士のある演算子による演算結果をなにで返すかって話であって、それは動的に型を決めるのと静的に型検査するかと言うことには直接は関係ない><

orange さんがブースト

例外は値を返さないというのがありまして、
.toInt()は数字を返す期待をされるのに対して、toInt()で例外が発生すると値を返さなくなるので参照透過性が失われるので副作用があることが認められるのさー

スレッドを表示
orange さんがブースト

単に要求された型の範囲で返せるか返せないかってだけの話であってそれ副作用の有無と全く関係ないよねたぶん?><;

と言うことは、さっき書いた動的型付けの議論の例示の 1+"hoge" の話と全く同じ?><;

hoge.toInt()は、hogeの状態に依存するから副作用があるって主張だよね?>< たぶん><
hoge.toString()もhogeの状態に依存するよね?><;

意味わかった!!!!!!!!><;
なるほど><; 「例外????><;」って考えちゃったからおかしく・・・・あれ?><

orange さんがブースト

例外はく可能性があると副作用って言っちゃったら、引数にゼロがあると(あるいはゼロ以外の何らかの既知の数値があると)ゼロ除算が発生する関数が全部「副作用ある」になっちゃわない?><;

orange さんがブースト

補足!関数にとって、その関数の返すものがその関数によってあらかじめ期待されているものであれば副作用にならない。

何が副作用に当たるのかは、

ja.m.wikipedia.org/wiki/%E5%8F

こちらが詳しいです!

スレッドを表示

例えば
static int DivideAbyB(int a, int b){
return a/b;
}
って副作用あるって言うの?><;

古いものを表示
:realtek:

思考の /dev/null