gpt4 book ai didi

haskell - 如何在haskell中获取数字的所有子编号

转载 作者:行者123 更新时间:2023-12-01 08:54:24 24 4
gpt4 key购买 nike

我想从特定方面获取数字的所有子编号。

以数字1234为例,左边的子数字是:

1, 12, 123, 1234

我用它实现了:

tail . inits $ show 1234

这样我就得到了 [[Char]] 格式的所有子编号。

["1","12","123","1234"]

我尝试使用以下行将它们转换为整数。

map read . tail . inits $ show 1234

但我收到以下错误

[*** Exception: Prelude.read: no parse

我做错了什么?

最佳答案

因为解释器不知道你想要返回什么类型

这将起作用:

λ> map read . tail . inits $ show 1234 :: [Int]
[1,12,123,1234]

当然,您也可以添加类型签名(很可能在您的代码文件中):

subnums :: Int -> [Int]
subnums = map read . tail . inits . show

在 ghci 中:

λ> subnums 1234
[1,12,123,1234]

一个很好的练习可以是在没有 show/read 的情况下做到这一点:

subnumbers :: Int -> [Int]
subnumbers 0 = []
subnumbers n =
n : subnumbers (n `div` 10)

你能解决这里的订单问题吗?

关于haskell - 如何在haskell中获取数字的所有子编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31138658/

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