无法在查询列表理解中应用保护表达式
Not able to apply guard expression in query list comprehension
我正在尝试查询列表理解:
> (set xs '(1 2 3 4 5 6 7 8))
> (lc ((<- x xs) (when (> x 5))) x)
但我收到错误 exception error: undefined function when/1
。
是否可以将保护语句应用于 lc
?
根据 LFE User Guide,在列表理解限定符中,守卫必须在列表表达式之前:
(<- pat {{guard}} list-expr)
这意味着你的例子应该这样写:
lfe> (set xs '(1 2 3 4 5 6 7 8))
(1 2 3 4 5 6 7 8)
lfe> (lc ((<- x (when (> x 5)) xs)) x)
(6 7 8)
您也可以将大于表达式视为普通布尔表达式限定符:
lfe> (lc ((<- x xs) (> x 5)) x)
(6 7 8)
我正在尝试查询列表理解:
> (set xs '(1 2 3 4 5 6 7 8))
> (lc ((<- x xs) (when (> x 5))) x)
但我收到错误 exception error: undefined function when/1
。
是否可以将保护语句应用于 lc
?
根据 LFE User Guide,在列表理解限定符中,守卫必须在列表表达式之前:
(<- pat {{guard}} list-expr)
这意味着你的例子应该这样写:
lfe> (set xs '(1 2 3 4 5 6 7 8))
(1 2 3 4 5 6 7 8)
lfe> (lc ((<- x (when (> x 5)) xs)) x)
(6 7 8)
您也可以将大于表达式视为普通布尔表达式限定符:
lfe> (lc ((<- x xs) (> x 5)) x)
(6 7 8)