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.  My Bitcoin miner (Zhi-Qiang Lei)
   2. Re:  Search for docs on operator '<+>'. (Allen S. Rout)
   3.  guards (kolli kolli)
   4. Re:  guards (Chadda? Fouch?)
   5. Re:  guards (kolli kolli)
   6.  Show a function? (Costello, Roger L.)
   7. Re:  Show a function? (Tony Morris)
   8. Re:  guards (Daniel Schoepe)
   9. Re:  guards (Brent Yorgey)


----------------------------------------------------------------------

Message: 1
Date: Thu, 10 Nov 2011 21:10:14 +0800
From: Zhi-Qiang Lei <[email protected]>
Subject: [Haskell-beginners] My Bitcoin miner
To: Haskell Beginer <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset="us-ascii"

Hi,

Learning Haskell, I write a Bitcoin miner for practice. Currently it's very 
basic(single thread, non-long-polling support). You are free and welcome to 
modify it.

Best regards,
Zhi-Qiang Lei
[email protected]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20111110/619f10c9/attachment-0001.htm>

------------------------------

Message: 2
Date: Thu, 10 Nov 2011 15:21:49 -0500
From: "Allen S. Rout" <[email protected]>
Subject: Re: [Haskell-beginners] Search for docs on operator '<+>'.
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

On 11/09/2011 01:24 PM, Brent Yorgey wrote:

> In fact, Allen, I now recall seeing you on the xmonad mailing list --
> perhaps you saw<+>  in an xmonad config?  In that case, indeed, it is
> NOT the ArrowPlus operator, but something defined by xmonad.  In the
> context of xmonad,<+>  is used for combining ManageHooks (actually, it
> can be used to combine any two things which have a type that is an
> instance of the 'Monoid' type class, but is most commonly used for
> ManageHooks).

Yes, indeed.  The message I summarise from all of this is that <+> isn't 
an official piece of language, it's in a formal fringe that might be 
enclosed in the future, but for the moment is a local convention whose 
meaning is merely colloquially influenced by formal uses.

I figured I'd pick up the conversation in xmonad-land when I had 
something approximating a concise question.


Digressing, let me say 'thanks' for the variety of useful answers I've 
gotten from the haskell community on this acknowledgedly ignorant couple 
of questions. :)

- Allen S. Rout




------------------------------

Message: 3
Date: Thu, 10 Nov 2011 15:37:17 -0700
From: kolli kolli <[email protected]>
Subject: [Haskell-beginners] guards
To: [email protected]
Message-ID:
        <cae7d9k6nhnusmdn5raz5myp6cjzbenbw-lf3d3qv32rrauw...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Hi,,

I am new to use ..plz bare with me..

How do we write two conditions using guards

suppose if we have a if condition if t1 t2 t3

typing :: TypingContext -> Term -> Maybe Type
--the typing relation
typing capGamma (Var x) = contextLookup x capGamma
typing capGama Tru = Just(TypeBool)
typing capGama Fls = Just(TypeBool)
typing capGama Zero = Just(TypeBool)
typing capGama (Succ t) = typing capGama t
typing capGama (Pred t) = typing capGama t
typing capGama (IsZero t) = typing capGama t
typing capGama (If t1 t2 t3)
  | typing capGama t1 == TypeBool && typing capGama t2 == x    = Just(x)
  | otherwise =  Nothing
 where x = typing capGama t3


its giving me  error

    Couldn't match expected type `Maybe Type'
           against inferred type `Type'
    In the second argument of `(==)', namely `TypeBool'
    In the first argument of `(&&)', namely
        `typing capGama t1 == TypeBool'
    In the expression:
            typing capGama t1 == TypeBool && typing capGama t2 == TypeBool

 how can i give two conditions in a single guard...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20111110/9a514ee6/attachment-0001.htm>

------------------------------

Message: 4
Date: Thu, 10 Nov 2011 23:51:14 +0100
From: Chadda? Fouch? <[email protected]>
Subject: Re: [Haskell-beginners] guards
To: kolli kolli <[email protected]>
Cc: [email protected]
Message-ID:
        <canfjzrzjzb7e_-mok3eb-cimf07pupiq_isvtcf8agonx-5...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

On Thu, Nov 10, 2011 at 11:37 PM, kolli kolli <[email protected]> wrote:
> its giving me? error
>
> ??? Couldn't match expected type `Maybe Type'
> ?????????? against inferred type `Type'
> ??? In the second argument of `(==)', namely `TypeBool'
> ??? In the first argument of `(&&)', namely
> ??????? `typing capGama t1 == TypeBool'
> ??? In the expression:
> ??????????? typing capGama t1 == TypeBool && typing capGama t2 == TypeBool
>

The problem is clearly not that you're using (&&) (which is the
correct way to have two conditions in one guard) but that "typing
capGama t1" is of type "Maybe Type" while TypeBool is of type "Type",
so you can't compare them with an (==), maybe you meant to use "Just
TypeBool" ?

-- 
Jeda?



------------------------------

Message: 5
Date: Thu, 10 Nov 2011 15:55:48 -0700
From: kolli kolli <[email protected]>
Subject: Re: [Haskell-beginners] guards
To: Chadda? Fouch? <[email protected]>
Cc: [email protected]
Message-ID:
        <cae7d9k5s0epuct21xmt6kfs8rcxjhv2yyp6ofhlrq5_9xki...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

I have to feame the code saying in IF t1 t2 t3

If t1 has type x and if type of t2 == type of t3 then return type of t2 or
t3

On Thu, Nov 10, 2011 at 3:51 PM, Chadda? Fouch? <[email protected]>wrote:

> On Thu, Nov 10, 2011 at 11:37 PM, kolli kolli <[email protected]>
> wrote:
> > its giving me  error
> >
> >     Couldn't match expected type `Maybe Type'
> >            against inferred type `Type'
> >     In the second argument of `(==)', namely `TypeBool'
> >     In the first argument of `(&&)', namely
> >         `typing capGama t1 == TypeBool'
> >     In the expression:
> >             typing capGama t1 == TypeBool && typing capGama t2 ==
> TypeBool
> >
>
> The problem is clearly not that you're using (&&) (which is the
> correct way to have two conditions in one guard) but that "typing
> capGama t1" is of type "Maybe Type" while TypeBool is of type "Type",
> so you can't compare them with an (==), maybe you meant to use "Just
> TypeBool" ?
>
> --
> Jeda?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20111110/9cb800e9/attachment-0001.htm>

------------------------------

Message: 6
Date: Thu, 10 Nov 2011 23:18:17 +0000
From: "Costello, Roger L." <[email protected]>
Subject: [Haskell-beginners] Show a function?
To: "[email protected]" <[email protected]>
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="us-ascii"

Hi Folks,

Consider this function:

      true = (\x y -> x)

When I type this at WinGHCi:

    true

I would like WinGHCi to show this string:

   TRUE

Is there a way to "show" a function?

/Roger



------------------------------

Message: 7
Date: Fri, 11 Nov 2011 09:23:20 +1000
From: Tony Morris <[email protected]>
Subject: Re: [Haskell-beginners] Show a function?
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1

On 11/11/2011 09:18 AM, Costello, Roger L. wrote:
> Hi Folks,
>
> Consider this function:
>
>       true = (\x y -> x)
>
> When I type this at WinGHCi:
>
>     true
>
> I would like WinGHCi to show this string:
>
>    TRUE
>
> Is there a way to "show" a function?
>
> /Roger
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
You can do it easily if you wrap your function up in a newtype:

http://paste.pocoo.org/show/506051/

-- 
Tony Morris
http://tmorris.net/





------------------------------

Message: 8
Date: Fri, 11 Nov 2011 01:21:58 +0100
From: Daniel Schoepe <[email protected]>
Subject: Re: [Haskell-beginners] guards
To: kolli kolli <[email protected]>, Chadda? Fouch?
        <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"

On Thu, 10 Nov 2011 15:55:48 -0700, kolli kolli <[email protected]> wrote:
> I have to feame the code saying in IF t1 t2 t3
> 
> If t1 has type x and if type of t2 == type of t3 then return type of t2 or
> t3

As Chadda? said, the result of a call to typing has type Maybe Type
while TypeBool has type Type, so you would have to compare the result
with Just TypeBool, and not just TypeBool.

The same applies to "where x = typing capGamma t3". Here x already has
type Maybe Type, so passing it to Just would give you a value of type
Maybe (Maybe Type). This can be resolved by returning x directly in this
case:
... | typing capGama t1 == TypeBool && typing capGama t2 == x = x

A minor stylistic comment: It's common to write `Just TypeBool' instead
of `Just(TypeBool)', since a constructor is really just a (special kind
of) function.

Cheers,
Daniel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20111111/d813f025/attachment-0001.pgp>

------------------------------

Message: 9
Date: Fri, 11 Nov 2011 00:02:56 -0500
From: Brent Yorgey <[email protected]>
Subject: Re: [Haskell-beginners] guards
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

On Fri, Nov 11, 2011 at 01:21:58AM +0100, Daniel Schoepe wrote:
> On Thu, 10 Nov 2011 15:55:48 -0700, kolli kolli <[email protected]> 
> wrote:
>
> with Just TypeBool, and not just TypeBool.

An unfortunate case of significant case. ;)

-Brent



------------------------------

_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners


End of Beginners Digest, Vol 41, Issue 16
*****************************************

Reply via email to