Streams - General

Welcome to the Functional Programming Zulip Chat Archive. You can join the chat here.

TheMatten

BTW there's wide mode which more resembles Slack's layout and makes more use of available screen estate - default setting seems a little bit weird to me

Bolt

This one is weird, but I like it :)

James King

It is definitely a bit weird if you've been using Slack for a while. Welcome! :)

TheMatten

@Armando Santos hi!

I like it, I just don't know what to discuss here yet :smiley:

TheMatten

Few people already joined - I guess I will ask support for community plan then :slight_smile:

TheMatten

(Oh, this is in chronological order :smiley:)

Bolt

Yes I'm digging it too :D

Bolt

How do you respond directly to some message?

Jack Henahan

I think you just click on the message and then it adds your message to the topic?

Yawar Amin

looks like every message has a stream and a topic, you can reply to a topic

Yawar Amin

e.g. right now we're in the 'General' stream, 'Streams' topic

Jack Henahan

How long do topics persist? Is there a way to clean them up? It seems like topics are analogous to threads, but I'd be a little weirded out if every side conversation was persisted forever in the sidebar. Good for looking up interesting conversations, I guess

Yawar Amin

good question. i can see topics being first-class objects in the UI could be a good and a bad thing.

TheMatten

@Jack Henahan from what I've read, they're in fact persistent, but once discussion ends in some, they're meant to be hidden - in same way as you can close thread in right pane on Slack

Jack Henahan

Yeah, I saw the mute button, which does yank them out of the top-level UI. I guess older conversations just get relegated to "more topics"

Bolt

oh Got it! that's... different! :P

TheMatten

So it seems like for every user, stream should basically be _composition_ of topics they're subscribed to, with messages in chronological order - sort of "decoupled" version of Slack's monolithic channel :smiley:

Jack Henahan

Pleasant night mode on mobile, so that's nice.

Jack Henahan

Slightly unfortunate that there's no real name/username distinction, though

Jack Henahan

Ooh, keyboard shortcuts :heart_eyes:

Jonathan Lorimer
data Markdown a = Markdown { unMarkdown :: a -> String }
Yawar Amin

seeing Jonathan's code reminded me of something i had to tackle recently–what's a good, short (ideally fits 'above the fold' on a home page) code example of FP that you feel can convince people to try out your language in production? so i'm ruling out primes or 'quicksort' or fizzbuzz. the code must be short, _and_ convey the succinct power of FP. if statically typed, then it should really include some typing

toxicafunk

I thought I had seen a Haskell stream but now I can't find it

James King

There is, you can search for anything with /

James King

ie: /stream:Haskell should pop up haskell related things

Pavan Rikhi

The cog to the right of STREAMS in the side bar takes you to a list of your subscribed streams. There's a toggle switch to show them all instead.

TheMatten

@Yawar Amin I'm actually interested in such example too - next week I'll be giving a short talk about Haskell at work and I can't come up with anything that's both simple and cool at the same time :smiley:

Jonathan Lorimer

Higher order functions really do it for me, especially with partial application. I really like this one:

reverse :: [a] -> [a]
reverse = foldl' (flip (:)) []

or defensive coding like this

safeHead :: NonEmpty a -> a
safeHead a :| _ = a
Jonathan Lorimer

If your focus really needs to be more on production, then anything from servant / persistent or esquelito is pretty compelling.

Yawar Amin

yeah basically, what would you ideally put above the fold on the language's home page? the kind of example you put there conveys how you want people to see the language, to an extent. Haskell faced some criticism for its non-'real-world' sorting example

Asad Saeeduddin

@Yawar Amin I like sequenceA-ing a traversable container full of http requests into something that resolves into a container of responses

Asad Saeeduddin

Not very sophisticated, but it's impressive when you're used to doing it with a loop or some manual deconstruction/reconstruction of the data structure

TheMatten

@everyone We've got Standard plan - that means UNLIMITED HISTORY!!! :smiley:

Disco Dave

We've got Standard plan - that means UNLIMITED HISTORY!!! :smiley:

So is this the official FP zulip chat then?

TheMatten

@Disco Dave I guess so :smiley:

TheMatten

Now we need to set up some custom branding (why not :smiley: ) and get rest of the Slackers to join us!

jkeuhlen

The real question is, can we add custom emoji easily? That's probably slack's greatest feature

Yawar Amin

oops. looks like i can't turn off animations. that's a deal-breaker for me

TheMatten

@Yawar Amin not sure why is that a problem :slight_smile:

Jack Henahan

Preference is enough of a reason, and on top of that there are medical concerns for some folks

Jack Henahan

Luckily, it's OSS, so I guess I'll go file some tickets

Jack Henahan

@Yawar Amin There's also a terminal client, in the meantime :slight_smile: