関数型プログラミング言語Haskell Part21
■ このスレッドは過去ログ倉庫に格納されています
0475デフォルトの名無しさん
2013/03/04(月) 07:30:32.05Cコンパイラは次の関数ポインタを受け取る関数
int twice(int (*f)(int), int x) {
return f(f(x));
}
が副作用があるか無いかを、どうやって知れば良いの?
渡される関数ポインタfがどんなものか分からないのに。
それとも、関数ポインタが渡されるときは、常に副作用があると考えるの?
なお、Haskellの場合は、副作用の無い関数として定義できるよ。
twice :: (Int -> Int) -> Int -> Int
twice f = f . f
■ このスレッドは過去ログ倉庫に格納されています