Hi Rick,

Thank you sincerely for the detailed guide. I'm glad to know I wasn't alone
in this position and that maybe I've simply been reading the wrong things
in the wrong order.

I'll take your advice onboard and give one of the other FP languages such
as Clojure proper look, I've actually never played with a language on the
JVM so that sounds like a nice way to kill two birds with one stone.

- Cheers!

Lee Hambley
http://lee.hambley.name/
+49 (0) 170 298 5667

On 14 April 2016 at 01:32, Rick Moynihan <[email protected]> wrote:

> On Tuesday, 12 April 2016 22:28:57 UTC+1, Lee Hambley  wrote:
> > Hi Rick,
> >
> > Unfortunately I can't attend but I'm far from the only person in my own
> peer group who's tried and failed to become interested in FP because of a
> lack of focus in most textbooks on mundane things such as IO, text and
> string manipulation and the likes.
>
> Hi Lee,
>
> I'm not sure that's really true of FP.  Firstly FP is far broader than
> just Haskell (and its children), for example Clojure, Lisp/Scheme/Racket,
> OCaml are almost universally considered functional languages - even though
> they don't force purity through the type system.  These languages can all
> be picked up pretty quickly, and their communities don't avoid discussing
> how to do side effects.
>
> So if you're ready to try again, it might be worth considering a different
> language to Haskell.  Lisp's for example have a rich tradition, and Clojure
> is a modern Lisp that favors a functional style: immutable values, lazy
> sequences, first class functions, and a disciplined but not enforced
> approach to side effects.
>
> You're right that Haskell tends to leave discussion of IO till later on;
> but that's because Monadic types require a good understanding of the
> fundamentals first.  There is these days a lot of discussion about IO in
> Haskell, it's just hard to understand at first.  If you're keen to try
> Haskell, then Real World Haskell introduces I/O pretty early in chapter 7,
> though Monads come 7 chapters after that.
>
> I'm not aware of any FP community avoiding text/string manipulation as a
> topic - but if they do - it'll likely be because they don't consider
> strings to be  that special...  They're just a value like anything else.
> In Haskell for example Strings are just lists of characters.
>
> Regarding how to do I/O in a functional style... it's easy, you basically
> try and avoid doing I/O in as much code as possible, and arrange things so
> that I/O mostly occurs at the bottom of the call stack.  The majority of
> your code then becomes pure, perhaps returning sequences of values, which
> are only output at the last minute - at the outer most edge of your code.
>
> Why build things in this way?  Well if state, side-effects and I/O are
> spread throughout your program things become less reusable because
> side-effects don't compose, have unstated implicit ordering dependencies,
> and typically belong to the application not reusable libraries.  If you're
> used to something like Ruby it might be hard to see how this works; but
> things like lazy sequences (in languages like Clojure) really help, as you
> can efficiently return unrealised computations as values to the I/O
> function that sits at the bottom of your call stack.  The I/O function then
> just forces the sequence for all its values which it outputs, to your I/O
> stream in a loop or reduction.
>
> > Will there be any recording facility to upload a video after the fact?
>
> Sorry, we don't yet record our talks.
>
> R.
>
> >
> > (sent from my phone, please excuse typos)
> >
> > On 12 Apr 2016 10:51 p.m., "Rick Moynihan" <[email protected]> wrote:
> > This Monday (18th April @7pm) the Lambda Lounge is meeting with a
> >
> > presentation by Hakim Cassimally on how Haskell is an acceptable Perl.
> >
> >
> >
> > http://www.lambdalounge.org.uk/
> >
> >
> >
> > So, Haskell is "an advanced purely-functional programming language" which
> >
> > supports writing "declarative, statically typed code". It may be
> optimized for
> >
> > academic buzzwords you've never heard of but... is it any good for
> writing code
> >
> > in the way that you'd write Perl, Python, or Ruby?
> >
> >
> >
> > What are strong types, and why are we so frightened of them anyway? Can
> you
> >
> > develop interactively in Haskell, the way you would in a dynamic
> language? Does
> >
> > Haskell have "whipuptitude" (being able to get things done quickly) as
> well as
> >
> > "manipulexity" (being able to manipulate complex things)? And perhaps
> most
> >
> > importantly, can writing Haskell be *fun*?
> >
> >
> >
> >
> >
> > Rick.
> >
> >
> >
> > --
> >
> > You received this message because you are subscribed to the Google
> Groups "North West Ruby User Group (NWRUG)" group.
> >
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> >
> > To post to this group, send an email to [email protected].
> >
> > Visit this group at https://groups.google.com/group/nwrug-members.
> >
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "North West Ruby User Group (NWRUG)" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send an email to [email protected].
> Visit this group at https://groups.google.com/group/nwrug-members.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"North West Ruby User Group (NWRUG)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send an email to [email protected].
Visit this group at https://groups.google.com/group/nwrug-members.
For more options, visit https://groups.google.com/d/optout.

Reply via email to