Q
回文结构哈斯克尔
1
A
回答
9
这部分
reverse [x*y] == [x*y]
是错误。 [x*y]
是一个包含单个元素的列表:x*y
的结果。反过来是相同的列表...
你想要的是其数字相反的数字。你需要一个包含数字位数的列表。一个简单的技巧就是将数字转换为字符串表示形式(请记住type String = [Char]
)。顺便说一句
palindrome = [ x*y | x <- [100..999], y <- [100..999], reverse (show (x*y)) == show (x*y)]
2
您不想将反转函数应用于包含单个数字的列表。您需要将反转函数应用于该数字的字符串表示形式。
尝试使用“显示”功能。
另外,如果你有足够的实力,以避免在看它,破坏项目欧拉的全部目的,你可以看看这个:
相关问题
- 1. 哈斯克尔
- 2. 在哈斯克尔
- 3. 在哈斯克尔
- 4. Control.Monad.State哈斯克尔
- 5. 在哈斯克尔
- 6. 在哈斯克尔
- 7. 哈斯克尔 - 布尔RoseTree
- 8. 插件组到构造哈斯克尔
- 9. 哈斯克尔返回类型混乱
- 10. 哈斯克尔函数的返回值
- 11. 哈斯克尔返回一个列表
- 12. 哈斯克尔功能返回故障
- 13. 哈斯克尔,返回一个元组
- 14. 哈斯克尔:如何在返回boolean
- 15. 如何写回哈斯克尔
- 16. 哈斯克尔背包
- 17. 哈斯克尔 - 给功能
- 18. 哈斯克尔safecopy例如
- 19. 合并树哈斯克尔
- 20. {}在.cabal在哈斯克尔
- 21. 哈斯克尔计算器
- 22. 哈斯克尔 - case语句
- 23. 如何哈斯克尔
- 24. 哈斯克尔IF语句
- 25. 哈斯克尔 - 阵列
- 26. 哈斯克尔暧昧型
- 27. 哈斯克尔LAMBDA倍
- 28. 显示树哈斯克尔
- 29. 哈斯克尔:地图runST
- 30. 牌西服哈斯克尔
:要做到这一点,你可以用
show
,而不是[ ]
这段代码告诉我的答案是906609. – 2009-08-11 02:21:16但我想计算它!无论如何谢谢 – 2009-08-11 02:42:02
对不起,如果我毁了你运行代码并查看结果找出答案的喜悦。哦......那种温暖的模糊感......这不是我的意图:) – 2009-08-11 03:02:56