Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/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. Equivalence (or not) of lists (Lawrence Wickert)
2. Re: Equivalence (or not) of lists (Sylvain Henry)
3. Re: Equivalence (or not) of lists (Francesco Ariis)
4. Re: Equivalence (or not) of lists (Francesco Ariis)
5. Equivalence (or not) of lists (Lawrence Wickert)
6. Request for Code Review: Dice Game Distribution (Jan Brusch)
----------------------------------------------------------------------
Message: 1
Date: Sat, 12 Nov 2016 20:20:19 +0000
From: Lawrence Wickert <[email protected]>
To: "[email protected]" <[email protected]>
Subject: [Haskell-beginners] Equivalence (or not) of lists
Message-ID:
<co1pr14mb10168fdc114706981643775eee...@co1pr14mb1016.namprd14.prod.outlook.com>
Content-Type: text/plain; charset="iso-8859-1"
Hello all,
I am a rank beginner to functional languages. Working through Lipovaca's book,
up to Chapter 3.
Ok, setup this function in editor and compiled:
length' :: (Num b) => [a] -> b
length' [] = 0
length' (_:xs) = 1 + length' xs
skippy@skippy:~$ ghci
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
Prelude> :l baby
[1 of 1] Compiling Main ( baby.hs, interpreted )
Ok, modules loaded: Main.
*Main> length' [1,2,3]
3
*Main> 1:2:3:[]
[1,2,3]
*Main> length' 1:2:3:[]
<interactive>:5:9:
Could not deduce (Num [a0]) arising from the literal '1'
from the context (Num a)
bound by the inferred type of it :: Num a => [a]
at <interactive>:5:1-16
The type variable 'a0' is ambiguous
In the first argument of 'length'', namely '1'
In the first argument of '(:)', namely 'length' 1'
In the expression: length' 1 : 2 : 3 : []
*Main>
Obviously, there is something I don't understand about the apparent
non-equivalence of the lists [1,2,3] and 1:2:3:[]I am guessing that the
solution is contained in that error message but I can't quite decipher it.
Thanks for any help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20161112/f503d1ce/attachment-0001.html>
------------------------------
Message: 2
Date: Sat, 12 Nov 2016 21:30:07 +0100
From: Sylvain Henry <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Equivalence (or not) of lists
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Hi,
> length' 1:2:3:[]
is equivalent to:
> (length' 1):2:3:[]
hence the error.
Try:
> length' (1:2:3:[])
Sylvain
On 12/11/2016 21:20, Lawrence Wickert wrote:
> Hello all,
>
> I am a rank beginner to functional languages. Working through
> Lipovaca's book, up to Chapter 3.
>
> Ok, setup this function in editor and compiled:
>
> length' :: (Num b) => [a] -> b
> length' [] = 0
> length' (_:xs) = 1 + length' xs
>
>
> skippy@skippy:~$ ghci
> GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
> Prelude> :l baby
> [1 of 1] Compiling Main ( baby.hs, interpreted )
> Ok, modules loaded: Main.
> *Main> length' [1,2,3]
> 3
> *Main> 1:2:3:[]
> [1,2,3]
> *Main> length' 1:2:3:[]
>
> <interactive>:5:9:
> Could not deduce (Num [a0]) arising from the literal ‘1’
> from the context (Num a)
> bound by the inferred type of it :: Num a => [a]
> at <interactive>:5:1-16
> The type variable ‘a0’ is ambiguous
> In the first argument of ‘length'’, namely ‘1’
> In the first argument of ‘(:)’, namely ‘length' 1’
> In the expression: length' 1 : 2 : 3 : []
> *Main>
>
>
> Obviously, there is something I don't understand about the apparent
> non-equivalence of the lists [1,2,3] and 1:2:3:[]I am guessing that
> the solution is contained in that error message but I can't quite
> decipher it.
>
> Thanks for any help.
>
>
>
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20161112/452b270b/attachment-0001.html>
------------------------------
Message: 3
Date: Sat, 12 Nov 2016 21:27:21 +0100
From: Francesco Ariis <[email protected]>
To: [email protected]
Subject: Re: [Haskell-beginners] Equivalence (or not) of lists
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
On Sat, Nov 12, 2016 at 08:20:19PM +0000, Lawrence Wickert wrote:
> Hello all,
>
> I am a rank beginner to functional languages. Working through
> Lipovaca's book, up to Chapter 3.
>
> [...]
>
> *Main> length' 1:2:3:[]
Hello Lawrence,
remember that function application has precedence over operators!
So writing:
*Main> length' 1:2:3:[]
is equivalent to writing
*Main> (length' 1) :2:3:[]
(which is not what you want). If you add parentheses, your expression
works again!
*Main> length' (1:2:3:[])
------------------------------
Message: 4
Date: Sat, 12 Nov 2016 21:29:22 +0100
From: Francesco Ariis <[email protected]>
To: [email protected]
Subject: Re: [Haskell-beginners] Equivalence (or not) of lists
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
On Sat, Nov 12, 2016 at 08:20:19PM +0000, Lawrence Wickert wrote:
> Hello all,
>
> I am a rank beginner to functional languages. Working through
> Lipovaca's book, up to Chapter 3.
>
> [...]
>
> *Main> length' 1:2:3:[]
Hello Lawrence,
remember that function application has precedence over operators!
So writing:
*Main> length' 1:2:3:[]
is equivalent to writing
*Main> (length' 1) :2:3:[]
(which is not what you want). If you add parentheses, your expression
works again!
*Main> length' (1:2:3:[])
------------------------------
Message: 5
Date: Sat, 12 Nov 2016 20:38:37 +0000
From: Lawrence Wickert <[email protected]>
To: "[email protected]" <[email protected]>
Subject: [Haskell-beginners] Equivalence (or not) of lists
Message-ID:
<co1pr14mb101622acdda51a0f18ca7e04ee...@co1pr14mb1016.namprd14.prod.outlook.com>
Content-Type: text/plain; charset="iso-8859-1"
Thanks, Sylvain. That works and I think I understand the difference now.
Larry
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20161112/815bc62c/attachment-0001.html>
------------------------------
Message: 6
Date: Sat, 12 Nov 2016 22:43:13 +0100
From: Jan Brusch <[email protected]>
To: [email protected]
Subject: [Haskell-beginners] Request for Code Review: Dice Game
Distribution
Message-ID:
<caosrd+4eiksnvg5yswwdmzokqrm0wt-tx5d1s6frnok7bu8...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Hi,
I'm currently learning Haskell and as a first project I wrote a little
helper for a dice game. It's very short. Nonetheless I would really
appreciate a little Code Review or any other input.
The Game: Each player writes down the numbers from 1 to 42. Each turn you
roll 3 dice (6-sided). The rolling player can cross of any one number that
he can construct from the three dice using the math operators +, -, *, /.
First player to cross off all numbers wins.
The Helper: Calculates the reachable numbers for each dice roll. It the
aggregates a count for each number, from how many dice rolls it can be
reached. E.g.: There are 216 possible dice rolls (6^3), the number 2 can be
reached form 171 of them. The helper gives out the data in JSON format that
can be read by NVD3 to be displayed in a browser. The graph helps you to
make a decision on which number you should prefer to cross off with your
current roll.
The Code: http://lpaste.net/338358
The Graph: http://imgur.com/a/NSDT8
Looking forward to any feedback and thanks in advance
Jan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20161112/d9ab4cbe/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 101, Issue 7
*****************************************