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:  searching for a file (Sean Perry)
   2. Re:  searching for a file (Michael Mossey)
   3. Re:  get date (SOLVED) (Luca Ciciriello)
   4.  Re: State monad question (Heinrich Apfelmus)
   5. Re:  get date (Luca Ciciriello)
   6. Re:  get date (Ozgur Akgun)
   7. Re:  get date (Luca Ciciriello)
   8.  Re: Integer by default. (Maciej Piechotka)
   9. Re:  get date (Ozgur Akgun)


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

Message: 1
Date: Wed, 23 Jun 2010 22:05:04 -0700
From: Sean Perry <[email protected]>
Subject: Re: [Haskell-beginners] searching for a file
To: beginners <[email protected]>
Message-ID: <1277355904.3904.27.ca...@turion>
Content-Type: text/plain

On Wed, 2010-06-23 at 20:56 -0700, Michael Mossey wrote:
> Can I get a hint how to do this:
> 
> Given a directory D and a file extension E, find the newest file in D 
> among all files with extension E.
> 
> I wouldn't mind if you point me to the functions that are useful and 
> leave the rest as an exercise. Or even just point me to the module(s) 
> that is(are) useful.
> 

http://www.haskell.org/onlinelibrary/directory.html does not work for
you?




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

Message: 2
Date: Wed, 23 Jun 2010 22:41:42 -0700
From: Michael Mossey <[email protected]>
Subject: Re: [Haskell-beginners] searching for a file
To: beginners <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed



Sean Perry wrote:
> On Wed, 2010-06-23 at 20:56 -0700, Michael Mossey wrote:
>> Given a directory D and a file extension E, find the newest file in D 
>> among all files with extension E.
> http://www.haskell.org/onlinelibrary/directory.html does not work for
> you?

That looks good. I'll see if I can get it to work.

Thanks,
Mike



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

Message: 3
Date: Thu, 24 Jun 2010 08:52:04 +0200
From: Luca Ciciriello <[email protected]>
Subject: Re: [Haskell-beginners] get date (SOLVED)
To: Felipe Lessa <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

Thanks Felipe.
Yes I use getCurrentTime. But I found I a stupid error in my code.
Now all works fine.
Thanks anyway for your answer.

Luca.


On Jun 23, 2010, at 8:13 PM, Felipe Lessa wrote:

> On Wed, Jun 23, 2010 at 08:03:16PM +0200, Luca Ciciriello wrote:
>> How can I get the current system date-time in Haskell?
>> 
>> I've used the library Time, but on MacOS X 10.6.4 the year is always 0.
>> 
>> Luca.
> 
> Do you mean, you used getCurrentTime from the time package[1]?
> What does the following line do?
> 
>  (toGregorian . utctDay) `fmap` getCurrentTime
> 
> On my system,
> 
>  GHCi, version 6.10.4: http://www.haskell.org/ghc/  :? for help
>  Loading package ghc-prim ... linking ... done.
>  Loading package integer ... linking ... done.
>  Loading package base ... linking ... done.
>  Prelude> :m Data.Time
>  Prelude Data.Time> (toGregorian . utctDay) `fmap` getCurrentTime
>  Loading package old-locale-1.0.0.1 ... linking ... done.
>  Loading package time-1.1.4 ... linking ... done.
>  (2010,6,23)
> 
> http://hackage.haskell.org/packages/archive/time/1.2.0.3/doc/html/Data-Time-Clock.html#v%3AgetCurrentTime
> 
> HTH,
> 
> --
> Felipe.
> 



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

Message: 4
Date: Thu, 24 Jun 2010 09:20:55 +0200
From: Heinrich Apfelmus <[email protected]>
Subject: [Haskell-beginners] Re: State monad question
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=UTF-8; format=flowed

Jordan Cooper wrote:
> Secondly, as to why I wanted to use a monad here, importantFunction
> (which is called playerTurn in the real program) would contain a
> series of functions that would modify Cards and Players, not just one
> each as in my initial example. Thus it seems like I'd have to end up
> with let foo... let foo'... etc. which, from my reading in RWH, seems
> to be an acceptable use for a State monad.

While your use of the state monad may well be sensible, keep in mind 
that many cases of "threading state" are covered by ordinary functional 
programming idioms, like function composition

     process = take 3 . sort . map length . filter (not . null) . lines

and accumulating parameters

     average xs = foldl' step (0,0) xs
         where
         step (!s,!n) x = (s+x, n+1)

     reverse xs = go xs
         where
         go ys []     = ys
         go ys (x:xs) = go (x:ys) xs

The functions in  Data.Map  are a good example as well: most of them 
"change" the map, but a state monad would be overkill for that.


The state monad is mainly beneficial when you otherwise would have many 
functions of type

     :: s -> (a,s)

with ugly plumbing like

     let (a,s') = foo s; (b,s'') = foo s' in ..


Regards,
Heinrich Apfelmus

--
http://apfelmus.nfshost.com



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

Message: 5
Date: Thu, 24 Jun 2010 09:52:46 +0200
From: Luca Ciciriello <[email protected]>
Subject: Re: [Haskell-beginners] get date
To: Felipe Lessa <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii

Just a question.
How can I obtain a String from

currentTime :: IO Day
currentTime =  utctDay `fmap` getCurrentTime

Here currentTime returns to me 2010-06-24, but I want "2010-06-24".
In another worlds I need a function 

currentTimeStr :: IO Day -> String

Any Idea?

Luca.



On Jun 23, 2010, at 8:13 PM, Felipe Lessa wrote:

> On Wed, Jun 23, 2010 at 08:03:16PM +0200, Luca Ciciriello wrote:
>> How can I get the current system date-time in Haskell?
>> 
>> I've used the library Time, but on MacOS X 10.6.4 the year is always 0.
>> 
>> Luca.
> 
> Do you mean, you used getCurrentTime from the time package[1]?
> What does the following line do?
> 
>  (toGregorian . utctDay) `fmap` getCurrentTime
> 
> On my system,
> 
>  GHCi, version 6.10.4: http://www.haskell.org/ghc/  :? for help
>  Loading package ghc-prim ... linking ... done.
>  Loading package integer ... linking ... done.
>  Loading package base ... linking ... done.
>  Prelude> :m Data.Time
>  Prelude Data.Time> (toGregorian . utctDay) `fmap` getCurrentTime
>  Loading package old-locale-1.0.0.1 ... linking ... done.
>  Loading package time-1.1.4 ... linking ... done.
>  (2010,6,23)
> 
> http://hackage.haskell.org/packages/archive/time/1.2.0.3/doc/html/Data-Time-Clock.html#v%3AgetCurrentTime
> 
> HTH,
> 
> --
> Felipe.
> 



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

Message: 6
Date: Thu, 24 Jun 2010 10:59:33 +0300
From: Ozgur Akgun <[email protected]>
Subject: Re: [Haskell-beginners] get date
To: Luca Ciciriello <[email protected]>
Cc: [email protected]
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="utf-8"

On 24 June 2010 10:52, Luca Ciciriello <[email protected]> wrote:

> Just a question.
> How can I obtain a String from
>
> currentTime :: IO Day
> currentTime =  utctDay `fmap` getCurrentTime
>
> Here currentTime returns to me 2010-06-24, but I want "2010-06-24".
> In another worlds I need a function
>
>
I bet Day has a Show instance (that's why you get 2010-06-24 in ghci I
suppose)
Just use that.



> currentTimeStr :: IO Day -> String
>
>
Getting out of IO? I would think again. Following might be what you really
want:

currentTimeStr :: IO Day -> IO String



> Any Idea?
>
> Luca.
>

Best,
Ozgur
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
http://www.haskell.org/pipermail/beginners/attachments/20100624/94948a5f/attachment-0001.html

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

Message: 7
Date: Thu, 24 Jun 2010 10:17:32 +0200
From: Luca Ciciriello <[email protected]>
Subject: Re: [Haskell-beginners] get date
To: Ozgur Akgun <[email protected]>
Cc: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="us-ascii"

Starting from the beginning, my original problem is to create the string:

"File creation date:  " ++ currentSystemDate ++ " by MyCompany"

to obtain the string

"File creation date: 2010-06-24 by MyCompany"

Probably this is really trivial, but I'm a real beginner in Haskell and this 
seems to me a big problem.

Luca.

On Jun 24, 2010, at 9:59 AM, Ozgur Akgun wrote:

> On 24 June 2010 10:52, Luca Ciciriello <[email protected]> wrote:
> Just a question.
> How can I obtain a String from
> 
> currentTime :: IO Day
> currentTime =  utctDay `fmap` getCurrentTime
> 
> Here currentTime returns to me 2010-06-24, but I want "2010-06-24".
> In another worlds I need a function
> 
> 
> I bet Day has a Show instance (that's why you get 2010-06-24 in ghci I 
> suppose)
> Just use that.
> 
>  
> currentTimeStr :: IO Day -> String
> 
> 
> Getting out of IO? I would think again. Following might be what you really 
> want:
> 
> currentTimeStr :: IO Day -> IO String
> 
>  
> Any Idea?
> 
> Luca.
>  
> Best,
> Ozgur 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
http://www.haskell.org/pipermail/beginners/attachments/20100624/02301868/attachment-0001.html

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

Message: 8
Date: Thu, 24 Jun 2010 09:54:49 +0100
From: Maciej Piechotka <[email protected]>
Subject: [Haskell-beginners] Re: Integer by default.
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"

On Wed, 2010-06-23 at 11:51 -0300, Felipe Lessa wrote:
> On Wed, Jun 23, 2010 at 09:38:24PM +0800, Lyndon Maydwell wrote:
> > Is there a way to get the prelude functions to use Integer by default
> > rather than Int?
> 
> In general, I think it is cleaner to use explicit type signatures
> instead of defaulting.  Running GHC with -Wall will warn you
> whenever you default to something.
> 
> Cheers,
> 
> --
> Felipe.

Also it helps a lot tracking type errors (and other errors are nearly
non-existing in Haskell ;) ).

Regards
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
Url : 
http://www.haskell.org/pipermail/beginners/attachments/20100624/7ce21d23/attachment-0001.bin

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

Message: 9
Date: Thu, 24 Jun 2010 12:16:57 +0300
From: Ozgur Akgun <[email protected]>
Subject: Re: [Haskell-beginners] get date
To: Luca Ciciriello <[email protected]>
Cc: [email protected]
Message-ID:
        <[email protected]>
Content-Type: text/plain; charset="utf-8"

Then you might want to use something like:

currentTimeStr :: IO String
currentTimeStr = do ct <- currentTime
                    return ("File creation date: " ++ show ct ++ " by
MyCompany")

Or more concisely,

currentTimeStr :: IO String
currentTimeStr = liftM (\ ct -> "File creation date: " ++ show ct ++ " by
MyCompany" ) currentTime

My point is, the type of currentTimeStr is IO String, not just String.
Because you are working on an IO value.

Best,

PS: If you are not confident with the piece of code I've suggested, please
have a look at the io/monads/do-notation sections of the Real World Haskell.


On 24 June 2010 11:17, Luca Ciciriello <[email protected]> wrote:

> Starting from the beginning, my original problem is to create the string:
>
> "File creation date:  " ++ currentSystemDate ++ " by MyCompany"
>
> to obtain the string
>
> "File creation date: 2010-06-24 by MyCompany"
>
> Probably this is really trivial, but I'm a real beginner in Haskell and
> this seems to me a big problem.
>
> Luca.
>
> On Jun 24, 2010, at 9:59 AM, Ozgur Akgun wrote:
>
> On 24 June 2010 10:52, Luca Ciciriello <[email protected]>wrote:
>
>> Just a question.
>> How can I obtain a String from
>>
>> currentTime :: IO Day
>> currentTime =  utctDay `fmap` getCurrentTime
>>
>> Here currentTime returns to me 2010-06-24, but I want "2010-06-24".
>> In another worlds I need a function
>>
>>
> I bet Day has a Show instance (that's why you get 2010-06-24 in ghci I
> suppose)
> Just use that.
>
>
>
>> currentTimeStr :: IO Day -> String
>>
>>
> Getting out of IO? I would think again. Following might be what you really
> want:
>
> currentTimeStr :: IO Day -> IO String
>
>
>
>> Any Idea?
>>
>> Luca.
>>
>
> Best,
> Ozgur
>
>
>


-- 
Ozgur Akgun
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
http://www.haskell.org/pipermail/beginners/attachments/20100624/b70b09cb/attachment.html

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

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


End of Beginners Digest, Vol 24, Issue 32
*****************************************

Reply via email to