Linux Agora Forums  

Go Back   Linux Agora Forums > Reading and Study Groups > O'Reilly - Real World Haskell

Reply
 
Thread Tools Display Modes
  #1  
Old 07-27-2010, 10:05 AM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default Real World Haskell - Introduction

Our first reading group is based on O'Reilly's - Real World Haskell by O'Sullivan, Stewart, and Goerzen, 2008

It is available in several formats, including online and as an eBook.

Haskell is a mature and developing functional language that supports concurrency.

A reading schedule and details will be posted here.

All suggestions welcome!

Jeff

Last edited by fos; 07-30-2010 at 01:01 PM.
Reply With Quote
  #2  
Old 07-27-2010, 10:22 AM
danieldk danieldk is offline
Libranet Developer
Senior Member
 
Join Date: Nov 2005
Location: Groningen, The Netherlands
Posts: 775
Default

It's very nice that we'll do this! To all: even if you will never use Haskell, it's a lot of fun, and it will improve your programming in other languages (e.g. in thinking more declaratively).
__________________
Blog: http://blog.danieldk.org/
Reply With Quote
  #3  
Old 07-27-2010, 10:41 AM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default

Here is a link to an online version: http://book.realworldhaskell.org/read/

I particularly like the online version. It has user comments embedded in the text.

Is is also available on Safari if you have a subscription, hard copy and Kindle via Amazon.

Last edited by fos; 07-28-2010 at 11:41 AM.
Reply With Quote
  #4  
Old 07-28-2010, 08:40 PM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default Haskell Cheat Sheet

I found a Haskell cheat sheet on the Haskell page. It is a little long for a cheat sheet at 14 pages, but it might be useful.

http://cheatsheet.codeslower.com/

The official Haskell web site is located at: http:/haskell.org

Jeff

Last edited by fos; 07-28-2010 at 08:57 PM.
Reply With Quote
  #5  
Old 07-29-2010, 09:04 PM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default Haskell Reference Card

Here is a link to a Haskell Reference Card. It is only six pages long.

This is a link to a very good prelude library reference

Last edited by fos; 07-31-2010 at 11:12 AM.
Reply With Quote
  #6  
Old 07-31-2010, 04:48 AM
gour gour is offline
New To The Community
 
Join Date: Jul 2010
Location: Croatia
Posts: 9
Default

Quote:
Originally Posted by danieldk View Post
It's very nice that we'll do this! To all: even if you will never use Haskell, it's a lot of fun, and it will improve your programming in other languages (e.g. in thinking more declaratively).
I'm happy to see this initiative...I'm fidlding with Haskell for too long without really learning it, so I hope the learning group can help me to be peristent and work regularly.


Sincerely,
Gour
Reply With Quote
  #7  
Old 07-31-2010, 04:57 AM
danieldk danieldk is offline
Libranet Developer
Senior Member
 
Join Date: Nov 2005
Location: Groningen, The Netherlands
Posts: 775
Default

Welcome to the forum Gour! Same thing for me, I have written some small things, even a module that is now on hackage[1], and a Brainf*ck interpreter[2]. But I want to pick up Haskell good enough to do more serious stuff.

[1] http://hackage.haskell.org/package/suffixarray
[2] http://github.com/danieldk/tinker-hs...ter/brainfuck/
__________________
Blog: http://blog.danieldk.org/
Reply With Quote
  #8  
Old 07-31-2010, 05:01 AM
gour gour is offline
New To The Community
 
Join Date: Jul 2010
Location: Croatia
Posts: 9
Default

Quote:
Originally Posted by danieldk View Post
Welcome to the forum Gour! Same thing for me, I have written some small things, even a module that is now on hackage[1], and a Brainf*ck interpreter[2]. But I want to pick up Haskell good enough to do more serious stuff.
Ohh, you're advanced user.

I also want to do (more) serious stuff - desktop GUI app, but seeing such advanced users here, maybe I subscribed to the wrong reading group.
Reply With Quote
  #9  
Old 07-31-2010, 06:29 AM
danieldk danieldk is offline
Libranet Developer
Senior Member
 
Join Date: Nov 2005
Location: Groningen, The Netherlands
Posts: 775
Default

Naaaah, there are many people around here with little programming or Haskell experience.
__________________
Blog: http://blog.danieldk.org/
Reply With Quote
  #10  
Old 07-31-2010, 06:54 AM
lisi lisi is offline
Libranet Alumni
Member
 
Join Date: May 2006
Location: Hampshire, United Kingdom
Posts: 91
Default

Quote:
Originally Posted by danieldk View Post
Naaaah, there are many people around here with little programming or Haskell experience.
Me, for instance. I was immediately enthusiastic about this initiative. And I have done no programming since machine code. No, not even assembler. Raw machine code. So great! A chance to tag along on everyone else's coat tails and learn something. And Gour could have towered over me. ;-)

But sadly, now that the timetable is out, I see that it is a non-starter. I am away from 8th August to the 22nd, inclusive. And I had in the first place little chance of keeping up. That fades away to no chance at all if, on top of everything else, I am going to miss out on the beginning. :-(

Lisi
Reply With Quote
  #11  
Old 07-31-2010, 07:40 AM
danieldk danieldk is offline
Libranet Developer
Senior Member
 
Join Date: Nov 2005
Location: Groningen, The Netherlands
Posts: 775
Default

Quote:
Originally Posted by lisi View Post
But sadly, now that the timetable is out, I see that it is a non-starter. I am away from 8th August to the 22nd, inclusive. And I had in the first place little chance of keeping up. That fades away to no chance at all if, on top of everything else, I am going to miss out on the beginning. :-(
I am abroad for two weeks, starting the same date (but probably with regular net connection). But it's not so much of a problem, the first chapter starts with tiny steps. So it will be relatively easy to do the first two chapters in the second week.
__________________
Blog: http://blog.danieldk.org/
Reply With Quote
  #12  
Old 07-31-2010, 07:41 AM
danieldk danieldk is offline
Libranet Developer
Senior Member
 
Join Date: Nov 2005
Location: Groningen, The Netherlands
Posts: 775
Default

Jeff, would it be possible to bump up the posts per page to, say 20? 10 creates a lot of pages .
__________________
Blog: http://blog.danieldk.org/
Reply With Quote
  #13  
Old 07-31-2010, 07:50 AM
lisi lisi is offline
Libranet Alumni
Member
 
Join Date: May 2006
Location: Hampshire, United Kingdom
Posts: 91
Default

Quote:
Originally Posted by danieldk View Post
I am abroad for two weeks, starting the same date (but probably with regular net connection). But it's not so much of a problem, the first chapter starts with tiny steps. So it will be relatively easy to do the first two chapters in the second week.
Thanks, Daniel. But I shall be missing both Chapter 1 *and* Chapter 2. And you do know just a little bit more than I do in the first place! I'll try - but since I shall not even be able to read the book while I am away, I fear that the leap will be too much.

(In case the British statement I have just made is _too_ British, "Just a little bit" in that context means "a gigantic amount".)

Lisi
Reply With Quote
  #14  
Old 07-31-2010, 09:18 AM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default

Hi Lisi,

The schedule is not written in stone, it is just a rough guide. That is the nice thing about forum based reading groups. It is not a formal classroom. I have already started with Chapter One. Post early, post late. I'm sure we will all have the same type of scheduling problems.

We could also move the starting date back a week (or more) if that would help. I just posted a preliminary schedule to get started.

Welcome Gour. I'm sure you have more experience and talent than necessary. There are experts here but they are always ready to answer questions.

Jeff

Last edited by fos; 07-31-2010 at 09:31 AM.
Reply With Quote
  #15  
Old 07-31-2010, 09:24 AM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default

Hi Daniel,

The max post per page was already set to 20. I raised it to 30. The length of posts plays in to the number per page.

If it is still paging to frequently, I can raise it further.

Jeff
Reply With Quote
  #16  
Old 07-31-2010, 09:30 AM
skip skip is offline
New To The Community
 
Join Date: Jul 2010
Posts: 1
Default

So how does this reading group thing work? I'm brand new to these forums and also brand new to Haskell. I'm starting to plow through the book with a ghci> prompt at the ready...
Reply With Quote
  #17  
Old 07-31-2010, 09:37 AM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default

Hi Skip,

Welcome aboard!

There will be a main thread for each chapter that will coincide roughly with the schedule. However, any member is welcome to post their own question or comment in a separate thread.

You will find that this is a very friendly and well mannered forum.

I have already started Chapter 1. I am trying to figure out the last exercise. I'm not sure they introduced enough material to answer that one. I can do it in C but I'm not up to counting characters in Haskell yet.

Anything you can think of to make the study group better would be welcome.

Jeff
Reply With Quote
  #18  
Old 07-31-2010, 10:19 AM
danieldk danieldk is offline
Libranet Developer
Senior Member
 
Join Date: Nov 2005
Location: Groningen, The Netherlands
Posts: 775
Default

Jeff, fire up GHCI:

Code:
Prelude> :type interact
interact :: (String -> String) -> IO ()
Which print the type of the interact function. You can forget about most of that line, but the (String -> String) part is interesting. It says that interact has one argument, and the argument is a function that takes a string, and returns a string.

In the example:

Code:
main = interact wordCount
    where wordCount input = show (length (lines input)) ++ "\n"
The code after where defines a function wordCount taking one argument, input. Given that interact takes a (String -> String) function, the input argument must be a string. A string is nothing else than a list of characters. And you have seen that length can be used to get the length of a list.
__________________
Blog: http://blog.danieldk.org/
Reply With Quote
  #19  
Old 07-31-2010, 10:34 AM
lisi lisi is offline
Libranet Alumni
Member
 
Join Date: May 2006
Location: Hampshire, United Kingdom
Posts: 91
Default

Quote:
Originally Posted by fos View Post
Hi Lisi,

We could also move the starting date back a week (or more) if that would help. I just posted a preliminary schedule to get started.

Jeff
Thanks, Jeff. I appreciate that. But I am only one, and you can please all of the people some of the time, and some of the people all of the time, but you cannot please all of the people all of the time. So, much as a later date for beginning would suit me personally, I don't feel that you can pander to me!!

I have started reading - and so far the problem is not with understanding, but with remembering!

And the schedule does sound more fluid than I had thought. If I can't keep up, I shall just have to drop out.

Lisi
Reply With Quote
  #20  
Old 07-31-2010, 11:10 AM
fos's Avatar
fos fos is offline
Administrator
Guru
 
Join Date: Nov 2005
Location: Texas
Posts: 1,265
Default

Hi Daniel,

duhh...

I don't know why I was looking for something more specific such as strlen. The purstrlen print function had me going on a wild goose chase.

I did find a nice reference for the prelude library:

http://www.cse.unsw.edu.au/~en1000/haskell/inbuilt.html

I'll have to see how that works.

Thanks, Jeff
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 02:31 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.