0
それは次のように純粋な関数であることhereを述べた:私は最初の関数は、それ以来、純粋であるかを理解していない以下はどのように純粋な関数ですか?
function insert(user) {
if (DB.exists(user.id)) {
throw Error("users exists");
}
var id = DB.insert(user);
user.id = id;
return user;
}
:
function insert(DB, user) {
return function() {
throwIfUserExists(DB, user);
var savedUser = saveUser(DB, user);
return savedUser;
}
}
と、次は不純な関数であります副作用を引き起こす関数を返します。私は間違っていますか?そうでなければ、関数はどのように純粋であると書かれますか?
私は最初の関数を呼び出すとします。副作用は実際に起こりますか? – user2357112
最初の関数では、関数を返すだけで、実行していません。したがって、副作用はありません。 –
'副作用を引き起こす機能' - どのような副作用ですか? –