从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”这个名字在社交上带来的问题。