Привет, я новичок в 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 и Double каждого из нечетных целых чисел. Примечание. Я не хочу кодировать в прелюдии. просто используя файл text.hs и загружая этот файл в cmd