我在haskell中具有以下lambda函数:
public function me(Request $request)
{
$user = JWTAuth::user();
if (count((array)$user) > 0) {
return response()->json(['status' => 'success', 'user' => $user]);
} else {
return response()->json(['status' => 'fail'], 401);
}
}
我想知道JavaScript中的等效版本是什么(出于学习目的),目前我写了以下版本,如果正确,我想知道。
cup size = \message -> message size
答案 0 :(得分:8)
您的JavaScript代码与
相对应cup = \size -> (\message -> message) size
在Haskell中。由于\message -> message
是身份函数,因此与
cup = \size -> size
又是身份功能:
cup = id
正确的翻译是
const cup = size => message => message(size)
或
function cup(size) { return message => message(size); }
答案 1 :(得分:3)
您的haskell lambda接受一个参数,然后返回一个lambda,该lambda依次接受一个函数作为参数,并将该函数与指定给cup的参数一起应用。
在javascript中,等效项是这样:
const cup = size => (message => message(size))
您可以不用括号将其重写:
const cup = size => message => message(size)