[Haskell-cafe] Formatting strict Text

fr33domlover fr33domlover at riseup.net
Thu Dec 24 00:43:41 UTC 2015


On Thu, 24 Dec 2015 00:13:34 +0200
fr33domlover <fr33domlover at riseup.net> wrote:

> Hello,
> 
> I have code which uses Text.Printf.printf with String. Now I'm moving the code
> to use strict Text everywhere (I picked strict since all my strings are very
> short, mostly less than 400 chars). What should I use instead of printf now?
> 
> One solution I found is the text-format package, which seems to simply split a
> Text on occurences of "{}" and insert values there. Are there other simple and
> efficient options? All I need is to append Text values and sometimes Ints too,
> so it's enough to have
> 
> (1) efficient append and concat
> (2) A function that is :: Int -> Text
> 
> Why is strict Text not a Monoid instance? And Builder has no `toStrictText`
> function? There is a function to convert Int to Builder and a Buildable
> instance for Int, but for a simple Int->Text it seems I'm left with an ugly
> `T.pack . show`.
> 
> 
> Suggestions / advice / comments on this?
> 
> Thanks in advance :)
> 
> fr33

Since Text does have a Monoid instance after all, another question: The docs
say 'append' is subject to fusion, but it isn't said about 'concat'. When I
need to append several texts together, does it matter whether I just use <>
between then or I 'concat' a list of them? Any one of them recommended / more
efficient?

I don't have any performance issues in my program, I just want to create good
habits now and not get used to bad ones :P

--fr33
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20151224/b177ce9b/attachment.sig>


More information about the Haskell-Cafe mailing list