Re: How do you use Data.Text.intersperse :: Char -> Text -> Text?

Carter Schonwald <[email protected]> Tue, 29 Jun 2021 12:29:47 -0400
Newsgroups gmane.comp.lang.haskell.libraries
Message-ID <CAHYVw0zF0WLOXLxMjetqedCVt=f4bhru_TX732ZpS0YkO2=Q-A@mail.gmail.com>
Cool!
Looks like the approach there is to not have a character type, but treat
code points as just tiny strings which can be mapped to integers?

I kind have this fuzzy idea Haskell and a lot of other languages use the
extended ascii character set in a sortah punned way that conflates binary
and textual data.  And that’s ignoring how most western / native English
software folks naively treat  chars as graphemes / atomic units of
rendering, when this falls apart when engineering for internationally
friendly software.

On Mon, Jun 28, 2021 at 3:43 AM Hécate <[email protected]> wrote:

> Carter, you might want to take a look at Elixir's standard library, which
> (in my experience) has a good position when it comes to graphemes
> https://hexdocs.pm/elixir/String.html
> Le 27/06/2021 à 15:58, Carter Schonwald a écrit :
>
> More deeply, it doesn’t suffice to guarantee you’re gonna have a well
> formed unicode sequence!
>
> It’d need to be grapheme -> text -> text  right?
>
> I’ve def wanted to dig into how to make programming more grapheme oriented
> for text at some point.  I think swift explcitly does this in their
> standard libraries ?
>
> On Sun, Jun 27, 2021 at 1:37 AM Ivan Lazar Miljenovic <
> [email protected]> wrote:
>
>> On Sun, 27 Jun 2021 at 12:44, Andreas Abel <[email protected]>
>> wrote:
>>
>>>  > `intersperse :: Char -> Text -> Text`
>>>
>>> Yeah, that looks silly indeed.  Should be pruned or marked as spam.
>>>
>>
>> "Spam" is a bit harsh.  And it does indeed have some use (albeit
>> primarily with test suites and quite possibly more efficient ways to do the
>> required task anyway):
>> https://github.com/search?l=Haskell&q=Text.intersperse&type=Code
>>
>>
>>
>>>
>>> On 2021-06-27 01:33, Andrew Lelechenko wrote:
>>> > I know applications for `intercalate :: Text -> [Text] -> Text`:
>>> `unwords`, `unlines`, etc. But what is `intersperse :: Char -> Text ->
>>> Text` good for? Am I correct assuming that its sole merit is to mimic
>>> `Data.List` API? Note that `Data.List.intersperse` is polymorphic and is
>>> exceedingly rarely used for `Char -> String -> String`.
>>> >
>>> > Best regards,
>>> > Andrew
>>> > _______________________________________________
>>> > Libraries mailing list
>>> > [email protected]
>>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>> >
>>> _______________________________________________
>>> Libraries mailing list
>>> [email protected]
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>>
>>
>>
>> --
>> Ivan Lazar Miljenovic
>> [email protected]
>> http://IvanMiljenovic.wordpress.com
>> _______________________________________________
>> Libraries mailing list
>> [email protected]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>
> _______________________________________________
> Libraries mailing [email protected]://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
> --
> Hécate ✨
> 🐦: @TechnoEmpress
> IRC: Hecate
> WWW: https://glitchbra.in
> RUN: BSD
>
> _______________________________________________
> Libraries mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>

_______________________________________________
Libraries mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries