Greetings Haskell community,
This is my first ever post so please be gentle...
Here's where I got to:
Jumped into GHCi:
GHCi, version 7.0.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Defined my function:
Prelude> let rightTriangles = [ (a,b,c) | c <- [1..10], b <- [1..10], a <- [1..10], a^2 + b^2 == c^2 ]
Tested my function:
Prelude> rightTriangles
[(4,3,5),(3,4,5),(8,6,10),(6,8,10)]
Now, I want to define a refinement of this that will only select values whose total is 24.
I could write it so:
let rightTriangles = [ (a,b,c) | c <- [1..10], b <- [1..10], a <- [1..10], a^2 + b^2 == c^2, a+b+c == 24]
However, it seems like a bit of a waste if I already have "rightTriangles" defined.
I tried a few things, but none of them worked:
Prelude> let rightTriangles` = rightTriangles, a+b+c == 24
<interactive>:1:21: parse error on input `='
Prelude> let rightTriangles` = rightTriangles | a+b+c == 24
<interactive>:1:21: parse error on input `='
Prelude> let rightTriangles` = [rightTriangles, a+b+c == 24]
<interactive>:1:21: parse error on input `='
Prelude> let rightTriangles` = [rightTriangles | a+b+c == 24]
<interactive>:1:21: parse error on input `='
Basically, I'm trying to work out how to draw data from a list already to hand.
Alexander