Haskell:带逗号的格式号

Nat*_*ate 13 haskell

是否有库函数将逗号放入Haskell的数字中?

我想要一个可以像这样工作的函数:

format 1000000 = "1,000,000"
format 1045.31 = "1,045.31"
Run Code Online (Sandbox Code Playgroud)

但我似乎无法在Haskell中找到此类型的任何数字格式化函数.数字格式化功能在哪里?

Jon*_*FTW 10

也许您可以使用Data.Split中的一些函数:

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/split

我知道这不是你想要的,但你可以使用Data.List.intersperse

http://haskell.org/ghc/docs/6.12.1/html/libraries/base-4.2.0.0/Data-List.html#v:intersperse

编辑:这样做你想要的,虽然我知道你想要一个库函数,但这可能就像你得到的那样接近(请原谅我糟糕的编码风格):

import Data.List.Split
import Data.List

format x = h++t
    where
        sp = break (== '.') $ show x
        h = reverse (intercalate "," $ splitEvery 3 $ reverse $ fst sp) 
        t = snd sp
Run Code Online (Sandbox Code Playgroud)


小智 -2

检查baseText.Printf中的模块:

https://hackage.haskell.org/package/base-4.9.0.0/docs/Text-Printf.html

  • 我不确定这是否符合要求。这只是提供了“printf”,但是“printf”的哪个实现支持带逗号的区域数字显示?他想要的是类似于 Perl 的 [Number::Format](http://search.cpan.org/dist/Number-Format/Format.pm) 。 (4认同)