gpt4 book ai didi

haskell - 将整数转换为不带 'mod' 和 'div' 的数字列表

转载 作者:行者123 更新时间:2023-12-02 21:23:29 25 4
gpt4 key购买 nike

我目前有下面的 Haskell 函数,它将整数转换为从原始整数中获取的数字列表。因此,我的问题是:有没有办法在不使用 moddiv 的情况下做到这一点?例如,如果我想对字符串做同样的事情,我可以利用其他函数(例如 head 和 tail 等)创建一个函数。

我在这个问题上挣扎了一段时间,然后才最终找到答案并在另一篇文章中找到答案。让我问这个问题的原因是我自己从来没有想过使用 moddiv!

toDigits :: Integer -> [Integer]
toDigits n
| n < 1 = []
| otherwise = toDigits (n `div` 10) ++ [n `mod` 10]

最佳答案

您提到可以使用列表操作对字符串执行相同的操作。确实,那将是另一种方式。您可以将整数转换为字符串,然后将每个字符转换为整数:

import Data.Char (digitToInt)

toDigits :: Int -> [Int]
toDigits = map digitToInt . show

这里我使用了Int而不是Integer,但是如果你真的想要的话,你可以使用Integer,但会稍微麻烦一点:

toDigits :: Integer -> [Integer]
toDigits = map (fromIntegral . digitToInt) . show

关于haskell - 将整数转换为不带 'mod' 和 'div' 的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24346667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com