从haskell函数返回的优雅方式?

从haskell函数返回的优雅方式?,haskell,Haskell,嗨,我是哈斯克尔的新手 我想退货,比如 return ((myfunc list1) ++ list2 ) 这里list1和list2是两个列表,myfunc还返回一个列表 最优雅的方法是什么?我应该使用$operator吗?提前感谢:)我会这样做: foo list1 list2 = myfunc list1 ++ list2 如果您确实需要返回(我怀疑您不需要),那么使用$可能是有保证的;但显式插入的版本也很好: foo list1 list2 = return (myfunc list

嗨,我是哈斯克尔的新手

我想退货,比如

return ((myfunc list1) ++ list2 )
这里list1和list2是两个列表,myfunc还返回一个列表


最优雅的方法是什么?我应该使用$operator吗?提前感谢:)

我会这样做:

foo list1 list2 = myfunc list1 ++ list2
如果您确实需要
返回
(我怀疑您不需要),那么使用
$
可能是有保证的;但显式插入的版本也很好:

foo list1 list2 = return (myfunc list1 ++ list2)
foo list1 list2 = return $ myfunc list1 ++ list2

在我看来,您可以将其替换为
返回$myfunc list1++list2
。但是您确定需要一个
return
函数开始吗?我可能会将其写成
return$myfunc list1++list2
return(myfunc list1++list2)
。但是,如果这个问题只是关于代码风格,那么stackoverflow实际上不是这些类型问题的位置,因为它是主观的。请注意,
return
实际上不是一个语句。这是一个函数。就我个人而言,我认为
return
可能不是一个好名字,因为与命令式语言中的返回相比,它会造成混乱。Haskell没有命令式语言中的“语句”。您可以通过将东西放在
=
符号的右侧来编写函数的返回值。我们可以通过阻止
return
而改用
pure
来缓解“return”这个名字在社交上带来的问题。