我想写一个函数获取两个列表,并将它们融合到一个列表,但以相反的顺序,因此[1,2,3]和[4,5,6]变成[4,5,6 ,1,2,3]和幸福,我有种停留在类型声明...谁能告诉我如何将列表作为Haskell函数的参数? (类型声明)
-4
A
回答
2
让我们来告诉你我是如何看待Haskell的 因此,让我们想想类型第一。你有一个2列表,并返回这些东西的列表。在类型语言中,这看起来像这样:[a] -> [a] -> [a]
。
一旦你知道你可以问hoogle类型:应该给你你需要:)
0
让我们看到的一切...... https://www.haskell.org/hoogle/
你的函数有两个参数:list1
和list2
。 你的函数的结果是一个相同类型的列表。这意味着你的函数正在处理三个列表。其中两个是参数,第三个是结果。
为了简单起见,我们假设您正在处理Integers
的列表。该类型声明是这样的:
fuse :: [Int] -> -- The first list
[Int] -> -- The second list
[Int] -- The result fusion
其中[Int]
代表Integers
列表。当然,该功能不一定是Integers
的列表。它可以被应用于包含任何类型的元素列表:
fuse :: [a] -> -- The first list
[a] -> -- The second list
[a] -- The result of the fusion
为[a] -> [a] -> [a]
上Hoogle快速搜索会给你(++)
功能上的结果:
(++) :: [a] -> [a] -> [a]
该函数将两个列表。在你的情况,你可以使用的功能是这样的:
fuse :: [a] -> -- The first list
[a] -> -- The second list
[a] -- The result
fuse list1 list2 = list2 ++ list1
或者在自由点式:
fuse :: [Int] -> -- The first list
[Int] -> -- The second list
[Int] -- The result
fuse = flip (++)
的翻转功能反转参数。
相关问题
- 1. haskell函数不工作,谁能告诉我为什么?
- 2. 谁能告诉我的MethodImplOptions.ForwardRef
- 3. 谁能告诉我为什么我的sqlite声明不起作用?
- 4. php:声明函数的参数类型
- 5. 谁能告诉我如何启动mp3?
- 6. 警告:函数声明中的参数名称(不带类型)
- 7. Haskell的类型声明多个参数功能
- 8. C函数语法,在参数列表之后声明的参数类型
- 9. 谁能告诉我如何编译webkitdotnet
- 10. 只要我能告诉函数只声明一次,Php就不能重新声明函数
- 11. F# - 警告说,我不声明类型参数明确
- 12. 内声明函数参数列表
- 13. Haskell类型声明
- 14. 为什么Perl告诉我,我已经声明了我的数组未声明?
- 15. 使用函数声明作为参数
- 16. c如何使用任何参数类型让函数声明?
- 17. 如何将函数类型序列化为haskell中的json?
- 18. 如何为模板嵌套类类型的函数声明参数?
- 19. 谁能告诉我为什么这个功能不起作用
- 20. 谁能告诉我这是什么类型的语言?
- 21. 声明函数的类型为struct C++
- 22. 如何在Haskell中将参数化类型序列化为JSON?
- 23. 谁能告诉我,是我的片断
- 24. 我该如何告诉PyCharm参数预期是什么类型?
- 25. Haskell数据类型函数参数
- 26. Haskell将函数作为另一个函数的参数调用
- 27. 新类型声明函数?
- 28. 声明一个具有类构造函数作为函数参数的函数
- 29. 对Haskell函数类型参数的说明
- 30. 如何声明接受通用AsyncTask作为参数的函数
另外,stackoverflow告诉我不要发表该评论,只是downvote代替。真的很好,所以。 – melpomene
是啊谢谢,downvoting是解决方案... ***** – SilverA
已经尝试[a] [a] - > [a]和其他一些不可能的东西 – SilverA