嗨,我是 Haskell 的新手,我遇到了一个问题,我不确定如何解决它。 注意:我在test.hs文件中执行所有操作,然后使用cmd加载该文件
程序将首先要求用户输入8-10位数字的列表。然后它将删除您输入的最后一个数字。 例如,如果我输入236453110 ,我会得到 23646311的输出。
然后我遇到的问题是回忆我得到另一组指令的输出。其中它将采用数字 23646311。的每个奇数位并加倍。所以它应该得到并输出 4312412321。注意如果我加倍一些奇数位而不是数字我得到的值大于12。那么这些值在实际上得到了简化。所以如果我把数字加倍后得到12则会变成12 = 1 + 2 = 3
lastdigit :: Integer -> Integer
lastdigit x = x`div`10
doubleOdd (x:xs) = (2*x):(doubleEven xs)
doubleOdd [] = []
doubleEven (x:xs) = x:(doubleOdd xs)
doubleEven [] = []
我已经能够单独执行这些部分,例如函数最后一位将删除您输入的数字的最后一位数字。除了双奇数函数将使每个奇数位加倍非数字。
所以重新总结一下我要求帮助的是当我使用我的最后一位数字函数时,我希望它自动进入doubleOdd的下一个函数并将每个奇数整数加倍。注意我不想只使用text.hs文件并在cmd上加载该文件的前奏中的代码