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. Re: type T' = T a b c (David McBride)
2. Re: type T' = T a b c (Imants Cekusins)
3. Re: type T' = T a b c (Theodore Lief Gannon)
4. Re: type T' = T a b c (Imants Cekusins)
5. Re: type T' = T a b c (Imants Cekusins)
6. Functions as Applicatives (Olumide)
7. Re: Functions as Applicatives (Imants Cekusins)
----------------------------------------------------------------------
Message: 1
Date: Mon, 22 Aug 2016 08:23:18 -0400
From: David McBride <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] type T' = T a b c
Message-ID:
<CAN+Tr42k2ibvTtpvojJRgiC3eb=zkva2bwdg7xtcplbsn4s...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
If you want to have something that can ignore a variable, you can just fill
it in with (). T Int Char () (), then have a function :: T a b () () -> IO
(). You can clean it up a little by making type aliases. type T2 a b = T
a b () (), type T3 a b c = T a b c ().
On Mon, Aug 22, 2016 at 7:32 AM, Imants Cekusins <[email protected]> wrote:
> T' and T a b seem to not mix well.
>
> T' can not be passed to a function expecting T a b and vice versa
>
> any suggestions?
>
>
> _______________________________________________
> 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/20160822/539fa0c3/attachment-0001.html>
------------------------------
Message: 2
Date: Mon, 22 Aug 2016 14:40:52 +0200
From: Imants Cekusins <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] type T' = T a b c
Message-ID:
<cap1qinbxptpuois4uafbr75r1sgwwlgs3uwcvnypym5+t_n...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
David, this seem to work similar to forall...:
synonym is not compatible with T a b.
you see, I hope to mix synonym with original T a b in a chain of fun calls.
Some of the funs accept args like this:
fun1::T a b -> a -> out1
.. and others - like this:
fun2::T' -> out2
in both cases a and b are not set. However in fun1 I try to enforce type
'a' in the arg #2.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20160822/f03f5280/attachment-0001.html>
------------------------------
Message: 3
Date: Mon, 22 Aug 2016 05:45:46 -0700
From: Theodore Lief Gannon <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] type T' = T a b c
Message-ID:
<CAJoPsuD7K=k3z83ZLizcoG+pyZW56-zmMuEaNtLi=rgz3xt...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Go in the other direction?
data T a b = T a b
type T2 a b c = T a (b, c)
type T3 a b c d = T a (b, c, d)
On Aug 22, 2016 5:40 AM, "Imants Cekusins" <[email protected]> wrote:
> David, this seem to work similar to forall...:
>
> synonym is not compatible with T a b.
>
> you see, I hope to mix synonym with original T a b in a chain of fun
> calls.
>
> Some of the funs accept args like this:
> fun1::T a b -> a -> out1
>
> .. and others - like this:
> fun2::T' -> out2
>
> in both cases a and b are not set. However in fun1 I try to enforce type
> 'a' in the arg #2.
>
>
>
> _______________________________________________
> 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/20160822/18a54b92/attachment-0001.html>
------------------------------
Message: 4
Date: Mon, 22 Aug 2016 14:51:13 +0200
From: Imants Cekusins <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] type T' = T a b c
Message-ID:
<CAP1qinZJsQt=jKE+cyD0Mqfnmsyd558cjwZ=nyrr9nso4h5...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
> data T a b = T a b
> type T2 a b c = T a (b, c)
how would this work if T were a record? say:
data T a b = T {
a::a,
b::b,
agnostic::Int
}
could we make a T' (no param) out of it?
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20160822/ec906bc4/attachment-0001.html>
------------------------------
Message: 5
Date: Mon, 22 Aug 2016 14:56:39 +0200
From: Imants Cekusins <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] type T' = T a b c
Message-ID:
<CAP1qinZK=GnsFPzSHerFKM51A6Vj2e1ynkcXhQ=in_wvu3a...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
ok this may be it:
data T a = T {
a::a,
common::Int
}
type T' a b = T (a,b)
# of record fields stays the same however we cram more data into the 'a'
field.
it surely works. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20160822/edd9ab99/attachment-0001.html>
------------------------------
Message: 6
Date: Mon, 22 Aug 2016 17:07:30 +0100
From: Olumide <[email protected]>
To: [email protected]
Subject: [Haskell-beginners] Functions as Applicatives
Message-ID: <[email protected]>
Content-Type: text/plain; charset=utf-8; format=flowed
Hi List,
I'm struggling to relate the definition of a function as a function
instance Applicative ((->) r) where
pure x = (\_ -> x)
f <*> g = \x -> f x (g x)
with the following expression
ghci> :t (+) <$> (+3) <*> (*100)
(+) <$> (+3) <*> (*100) :: (Num a) => a -> a
ghci> (+) <$> (+3) <*> (*100) $ 5
508
From chapter 11 of LYH http://goo.gl/7kl2TM .
I understand the explanation in the book: "we're making a function that
will use + on the results of (+3) and (*100) and return that. To
demonstrate on a real example, when we did (+) <$> (+3) <*> (*100) $ 5,
the 5 first got applied to (+3) and (*100), resulting in 8 and 500.
Then, + gets called with 8 and 500, resulting in 508."
The problem is that I can't relate that explanation with the definition
of a function as an applicative; especially f <*> g = \x -> f x (g x) .
Is (g x) the second argument to f?
Regards,
- Olumide
------------------------------
Message: 7
Date: Mon, 22 Aug 2016 19:34:11 +0200
From: Imants Cekusins <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Functions as Applicatives
Message-ID:
<cap1qinbk18ejwe9hthrfecw0jnkf8rvy1loflh21kk3eu-e...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Hello Ollumide,
this may help: it builds and runs anyway.
{-
instance Applicative ((->) r) where
pure x = (\_ -> x)
f <*> g = \x -> f x (g x)
with the following expression
ghci> :t (+) <$> (+3) <*> (*100)
(+) <$> (+3) <*> (*100) :: (Num a) => a -> a
ghci> (+) <$> (+3) <*> (*100) $ 5
508
-}
f::Num f => f -> f -> f
f = (+)
g::Num g => g -> g
g = (+ 3)
h::Num h => h -> h
h = (* 100)
fg::Num a => a -> a -> a
fg = f <$> g
{- fg a b = a + (b + 3)
fg a = \b -> a + (b + 3)
-}
fgh::Num a => a -> a
fgh = fg <*> h
{- fgh b = fg (b * 100)
fgh = \b -> fg (b * 100)
-}
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20160822/6ea7ca9b/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 98, Issue 14
*****************************************