【发布时间】:2014-01-09 06:23:10
【问题描述】:
if even 2 then 10 else 11 -- works fine
if even 2 then let t = 10 else let s = 11 -- _:27: parse error on input 'else'
if even 2 then 10 else let s = 11 -- _:34 parse error (possibly incorrect indentation or mismatched brackets)
因为假设我想用 [[p]] 编写类似这样的代码:
[ t | let e = [],
let o = p!!14, r <- [13,12..1],
if even r
then
let o = zipWith (+) (p!!r) (zipWith max e (drop 1 e))
t = o
else
e = zipWith (+) (p!!r) (zipWith max o (drop 1 o))
t = e ]
在加载时报告错误。 . . _:33: 输入“else”时解析错误
【问题讨论】:
-
你真的需要通过适当的 Haskell 入门教程。请不要假设 Haskell 和其他所有语言一样,就像你的 python 一样的列表推导。哦,还有一件事,欢迎来到 SO!
标签: haskell