我想知道是否可以在haskell的警卫中使用警卫。
像这样 :
analyser modele instr
| instr == NoCom = (modele, "No command" ,[])
| instr == ComK | (read comargstr1) == 0 = function1 modele Nothing
| (read comargstr1) == 1 = function1 modele (Just (read comargstr1))
| (read comargstr1) < 0 = function1 modele (Just (read comargstr2))
| otherwise = function2 modele
| othercases...
| othercases...
在我的示例中,我根本无法在防护的第一列中求值(读取comargstr1),因为comargstr1并不总是返回兼容的可读字符串(致命错误)
我没有设法在警卫中使用警卫!
是否有可能做到这一点(是否有技巧,选项,特殊功能……)还是完全不可能?
预先感谢您的帮助!
最佳答案
布局不适用于后卫,因此对齐它们的方式也无关紧要。
您能做的最接近的就是将MultiWayIf用于第二级防护。