Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: Ranges and List Comprehensions in SQL (Brent Yorgey)
2. Too lazy/Too strict (Alex Rozenshteyn)
3. Motivation to Learn Haskell (Lorenzo Isella)
4. Re: Motivation to Learn Haskell (Tim Perry)
5. Re: Motivation to Learn Haskell (Benjamin L. Russell)
6. Real world example of Typeclasses > Interfaces (Alec Benzer)
7. dealing with chained functions (Alec Benzer)
----------------------------------------------------------------------
Message: 1
Date: Fri, 3 Sep 2010 14:07:42 -0400
From: Brent Yorgey <[email protected]>
Subject: Re: [Haskell-beginners] Ranges and List Comprehensions in SQL
To: Toby Thain <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
On Fri, Sep 03, 2010 at 12:09:01PM -0400, Toby Thain wrote:
>
> On 3-Sep-10, at 11:43 AM, Brent Yorgey wrote:
>
> >On Fri, Sep 03, 2010 at 11:21:27AM -0400, Tom Murphy wrote:
> >...
> >>The record would actually be coming from an SQL database.
> >>I would like to be able to store a large list in SQL records,
> >>without having
> >>to store every element.
> >
>
> I see no downside whatsoever to "storing every element". It's what an
> RDBMS does: manage relations.
Good point. I initially meant to write something about "premature
optimization" in my email but then forgot.
-Brent
------------------------------
Message: 2
Date: Sat, 4 Sep 2010 00:17:13 +0300
From: Alex Rozenshteyn <[email protected]>
Subject: [Haskell-beginners] Too lazy/Too strict
To: beginners <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset="utf-8"
I'm trying to take an html page whose last pre tag contains a hexdump and
write the hex out as an executable.
Link to truncated html example: http://pastebin.com/ENMDrsAT
Link to my code: http://pastebin.com/XY0wgM6r
I've got a memory leak somewhere, likely due to laziness, and I would
appreciate help in finding it; this is the first one i've encountered, so
I'm a bit clueless.
--
Alex R
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/beginners/attachments/20100903/9cac6826/attachment-0001.html
------------------------------
Message: 3
Date: Sat, 04 Sep 2010 00:57:26 +0200
From: Lorenzo Isella <[email protected]>
Subject: [Haskell-beginners] Motivation to Learn Haskell
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Dear All,
It is my first post to this list and please do not take it as an attempt
to start any flamewar.
From time to time, I try to find the motivation to learn at least the
fundamentals of another programming language.
I normally use R and Python on a daily basis (but I am not that much
into OO programming) and have a good knowledge of Fortran and a rather
superficial one of C.
Beside learning a new language as a sort of mind expanding exercise, I
try to figure out how and if it can save me some time in my work and how
it measures up against other languages.
These days I tend to rely on R for data analysis and visualization
whereas I use Python (in particular Numpy+SciPy) for number crunching
(it is very convenient to use scipy/numpy to solve ODE's, manipulate
arrays and so on).
Now, I wonder what benefit I would gain from learning Haskell since I
mainly write codes for numerical simulations/data analysis.
I know Haskell is gaining momentum e.g. in the financial environment (I
happened to see Haskell knowledge as a specification in some quant jobs)
hence it must be more than suitable for numerical work and, by the
little I have understood so far, it allows one to write code really
resembling mathematical expressions (I was impressed by guards and
curried functions).
However, it also looks to me (correct me if I am mistaken) that Haskell
is a far cry from the wealth of standard and contributed scientific
modules you have in Python or R and thanks to which you do not
re-implement the wheel yourself.
Any thoughts/suggestions are really appreciated.
Cheers
Lorenzo
------------------------------
Message: 4
Date: Fri, 3 Sep 2010 16:30:21 -0700 (PDT)
From: Tim Perry <[email protected]>
Subject: Re: [Haskell-beginners] Motivation to Learn Haskell
To: Lorenzo Isella <[email protected]>, [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
You might find this discussion started by a skeptic interesting (I did):
http://www.reddit.com/r/haskell/comments/cs54i/how_would_you_write_du_in_haskell/
The topic is different, but the responses tell me:
- Lots of library code that I expect to be written already doesn't exist for
Haskell.
- This isn't so bad as the code you have write is relatively succinct.
- You still have to write the missing code. Which sucks (tm).
I'm using Haskell for lots of one-off data processing. It is generally quick to
develop. It generally yields type errors rather than gibberish when I write
something stupid in my code. I recommend it. But I've never used SciPy so I
can't comment on the relative depth of the libraries.
With all that said, there are are libraries with the obvious statistical
methods:
http://hackage.haskell.org/package/#cat:statistics
http://hackage.haskell.org/package/statistics
http://hackage.haskell.org/packages/archive/hstats/0.3/doc/html/Math-Statistics.html
If you do jump in, I'd recommend the Real World Haskell book or the The Haskell
School of Expression book.
Good luck,
Tim
----- Original Message ----
From: Lorenzo Isella <[email protected]>
To: [email protected]
Sent: Fri, September 3, 2010 3:57:26 PM
Subject: [Haskell-beginners] Motivation to Learn Haskell
Dear All,
It is my first post to this list and please do not take it as an attempt to
start any flamewar.
>From time to time, I try to find the motivation to learn at least the
fundamentals of another programming language.
I normally use R and Python on a daily basis (but I am not that much into OO
programming) and have a good knowledge of Fortran and a rather superficial one
of C.
Beside learning a new language as a sort of mind expanding exercise, I try to
figure out how and if it can save me some time in my work and how it measures
up
against other languages.
These days I tend to rely on R for data analysis and visualization whereas I
use
Python (in particular Numpy+SciPy) for number crunching (it is very convenient
to use scipy/numpy to solve ODE's, manipulate arrays and so on).
Now, I wonder what benefit I would gain from learning Haskell since I mainly
write codes for numerical simulations/data analysis.
I know Haskell is gaining momentum e.g. in the financial environment (I
happened
to see Haskell knowledge as a specification in some quant jobs) hence it must
be
more than suitable for numerical work and, by the little I have understood so
far, it allows one to write code really resembling mathematical expressions (I
was impressed by guards and curried functions).
However, it also looks to me (correct me if I am mistaken) that Haskell is a
far
cry from the wealth of standard and contributed scientific modules you have in
Python or R and thanks to which you do not re-implement the wheel yourself.
Any thoughts/suggestions are really appreciated.
Cheers
Lorenzo
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
------------------------------
Message: 5
Date: Sat, 04 Sep 2010 09:30:53 +0900
From: [email protected] (Benjamin L. Russell)
Subject: [Haskell-beginners] Re: Motivation to Learn Haskell
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
Tim Perry <[email protected]> writes:
> If you do jump in, I'd recommend the Real World Haskell book or the The
> Haskell
> School of Expression book.
Another interesting title is _Programming in Haskell,_ by Graham Hutton
(see http://www.cs.nott.ac.uk/~gmh/book.html). Duncan Coutts has
written a review on the title (see
http://www.cs.nott.ac.uk/~gmh/book-review.pdf).
As for motivation for learning Haskell, one motivator is the purely
functional nature of the language, which is referentially transparent
and therefore facilitates reasoning about programs. Haskell has roots
in category theory, and therefore, it is frequently possible to use
category-theoretical reasoning to reason about the correctness of
programs; this cannot be said of most other programming languages.
-- Benjamin L. Russell
>
> Good luck,
> Tim
>
>
>
>
>
> ----- Original Message ----
> From: Lorenzo Isella <[email protected]>
> To: [email protected]
> Sent: Fri, September 3, 2010 3:57:26 PM
> Subject: [Haskell-beginners] Motivation to Learn Haskell
>
> Dear All,
> It is my first post to this list and please do not take it as an attempt to
> start any flamewar.
>>From time to time, I try to find the motivation to learn at least the
> fundamentals of another programming language.
> I normally use R and Python on a daily basis (but I am not that much into OO
> programming) and have a good knowledge of Fortran and a rather superficial
> one
> of C.
> Beside learning a new language as a sort of mind expanding exercise, I try to
> figure out how and if it can save me some time in my work and how it measures
> up
> against other languages.
> These days I tend to rely on R for data analysis and visualization whereas I
> use
> Python (in particular Numpy+SciPy) for number crunching (it is very
> convenient
> to use scipy/numpy to solve ODE's, manipulate arrays and so on).
> Now, I wonder what benefit I would gain from learning Haskell since I mainly
> write codes for numerical simulations/data analysis.
> I know Haskell is gaining momentum e.g. in the financial environment (I
> happened
> to see Haskell knowledge as a specification in some quant jobs) hence it must
> be
> more than suitable for numerical work and, by the little I have understood so
> far, it allows one to write code really resembling mathematical expressions
> (I
> was impressed by guards and curried functions).
> However, it also looks to me (correct me if I am mistaken) that Haskell is a
> far
> cry from the wealth of standard and contributed scientific modules you have
> in
> Python or R and thanks to which you do not re-implement the wheel yourself.
> Any thoughts/suggestions are really appreciated.
> Cheers
>
> Lorenzo
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
--
Benjamin L. Russell / DekuDekuplex at Yahoo dot com
http://dekudekuplex.wordpress.com/
Translator/Interpreter / Mobile: +011 81 80-3603-6725
"Furuike ya, kawazu tobikomu mizu no oto." -- Matsuo Basho^
------------------------------
Message: 6
Date: Fri, 3 Sep 2010 22:51:59 -0400
From: Alec Benzer <[email protected]>
Subject: [Haskell-beginners] Real world example of Typeclasses >
Interfaces
To: [email protected]
Message-ID:
<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
Very new to Haskell, but I was just mulling this over; when I first learned
about typeclasses, I saw the apparent benefit of being able to assert that a
parameter to a function belongs to two typeclasses instead of just one. Ie,
in Java, for example, you can ensure that a parameter to a function belongs
to a particular interface by doing something like:
int doSomething(Comparable c) { ... }
But there's no real way of ensuring an argument implements two interfaces,
whereas in Haskell you can make sure that an argument belongs to two (or
however many) typeclasses.
doSomething :: (Ord a, Eq a, OtherTypeClass a) => a -> Int
...
But as I thought about this, I couldn't seem to think of a practical case
where this would be useful. The basic typeclasses in Haskell seem to follow
a hierarchy. Ie, anything that belongs to Ord belongs to Eq, anything that
belongs to Enum belongs to Ord, anything that belongs to Num belongs to
Enum. I suppose there may be certain cases involving Functors where there
would be a point to specifying multiple typeclasses (eg, an Int would not
work with (Functor a, Ord a)), but I guess I'm still somewhat skeptical
about how often such a check would be necessary in practical applications.
So I guess I'm just wondering if someone could give me an example of a
practical case of the typeclass system allowing you to do a check like this
that would not have been possible with interfaces. Or is there another
benefit to typeclasses over interfaces that I've missed?
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/beginners/attachments/20100903/1974cf49/attachment-0001.html
------------------------------
Message: 7
Date: Sat, 4 Sep 2010 00:52:15 -0400
From: Alec Benzer <[email protected]>
Subject: [Haskell-beginners] dealing with chained functions
To: [email protected]
Message-ID:
<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
Is there a generally accepted "better" way of dealing with the following:
say I have three functions that all rely on output from each other. Ie, we
get raw input, which one function processes. another function then requires
the output from this function and produces some other output, which a third
function then requires. would it be better to implement the functions like
this:
f1 :: a -> b
f2 :: b -> c
f3 :: c -> d
final :: a -> d
or like this:
f1 :: a -> b
f2 :: a -> c
f3 :: a -> d
Ie, in the latter set, f2 calls f1 on its input, and then proceeds to
process it. f3 calls f2 on its input, etc. In the former case, final would
just chain all three functions together itself (or I might just do it in
main or somewhere else that's appropriate)
Are one of these methods generally considered a better practice than the
other, specifically in a functional context? My gut tells me that the former
method looks more appropriate, but I'm not sure if it'd really be the
accepted practice regardless of context, or if one might use either of these
methods depending on the specifics of what they're doing. Or if it's just a
matter of taste/opinion?
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/beginners/attachments/20100903/e00a6553/attachment.html
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 27, Issue 9
****************************************