我可以执行简单的操作,比如
Hugs> 2+2
Run Code Online (Sandbox Code Playgroud)
例如.或者任何操作,就此而言.
但是当涉及到实际尝试定义一个函数时,例如:
occurs :: Eq a => a -> [a] -> Bool
occurs x l = x `elem` l
Run Code Online (Sandbox Code Playgroud)
然后我收到消息:
ERROR - Syntax error in input (unexpected `=')
Run Code Online (Sandbox Code Playgroud)
我也遇到unexpected `::'其他情况.我正在使用WinHugs.
所以我试图在Haskell中定义一个函数,如果给定一个整数并且整数列表将给出'true'或'false',无论整数是否只出现一次.
到目前为止我有:
让一次:: Eq a => a - > [a] - > Bool; 一旦xl =
但我还没有写完代码.你可能会说,我对Haskell很新.
所以我定义了一个函数,它根据是否匹配将值映射到1或0.
例如:
match 3 [1,2,3,4,5] == [0,0,1,0,0]
Run Code Online (Sandbox Code Playgroud)
到目前为止我用来定义我的'匹配'功能的是:
let match :: a -> [a] -> [Int]; match x xs = map
Run Code Online (Sandbox Code Playgroud)
当然,我还没有在'map'之后写出来,这就是我需要帮助的地方.
我是Haskell的新手,我正在尝试编写一个函数,如果给出一个整数列表,另一个整数n将返回一个布尔值,无论整数是否在列表中.
所以我写道:
l=[n..m]
occurs :: Int -> [Int] ->Bool
occurs x l
| x `elem` l = True
| otherwise = False
Run Code Online (Sandbox Code Playgroud)
但我得到'unexpected ='或其他的语法错误.

考虑功能:
function R = bumpfun(x,y)
if x > 0 & y > 0
R = (exp(-1./x.^2)).*(exp(-1./(1-x).^2)).*(exp(-1./y.^2)).*(exp(-1./(1-y).^2));
else
R = 0;
end
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试计算时bumpfun(-10:.1:10,-10:.1:10),我得到了0,这没有任何意义,因为x > 0 & y > 0我应该得到非零的东西.