【发布时间】:2018-10-31 14:37:13
【问题描述】:
我试图理解以下代码:
def() ->commands
if(deferred_passive_abilities != [],
let [{ability: class passive_ability, creature: class creature}] items = [];
let found = false;
map(deferred_passive_abilities,
if(cmd = null, add(items, [value]), [cmd, set(found, true)])
where cmd = value.ability.static_effect(me, value.creature));
if(found,
set(deferred_passive_abilities, items);
evaluate_deferred_passive_abilities(),
set(deferred_passive_abilities, []))
)
Haskell 似乎同时拥有let 和where,但通过对他们的haskell 文档进行肤浅阅读,我并没有学到太多东西。他们还有一个let...in,我不明白,但如果 FFL 有这个,那就太好了。
那么,使用let 与where 的意义何在?这里有必要使用let吗? (另外,可能还有另一个问题:为什么需要这些分号?)
【问题讨论】:
标签: where-clause let anura ffl