【发布时间】:2016-05-03 13:55:12
【问题描述】:
我有一个任务是在 Haskell 中创建一个将二进制转换为十进制的函数。它必须是一个仅使用 if-then-else、+、times 等的递归函数。我无法导入库来简化工作。到目前为止,我迷路了任何形式的指导都会有所帮助我不熟悉 haskell 我可以用另一种语言完成这项任务。
【问题讨论】:
-
好的 - 你能用文字描述算法吗?也许我们可以从那里开始为您提供帮助
-
"我可以用另一种语言完成这项作业。"如果您可以用另一种语言进行递归且没有变异,那么您很有可能几乎可以将其逐字翻译成 Haskell。
-
假设二进制存储为布尔值列表,您的函数有两种情况:(a) 列表为空,您可以返回 0。(b) 列表不为空。然后你有一个头值和列表的其余部分。对于列表的其余部分,只需调用相同的函数。所以现在给定头部值(真/假)和尾部值(一个数字),您可以计算头部:尾部的值。这是故意遗漏一些信息,因为我不想为你做任务。
标签: haskell recursion binary decimal