Hi guys, I'm new to Haskell and I'm just trying out some easy functions right now, but I'm having some trouble here... I want to display a clock type Time = (Int, Int) (hoursx,minutesy) x ={0,1,...,23} y={0,1,...,59} where I can add hours and minutes or set back time. If its 23,58 for example and I want to add 35 minutes, the clock has to set to 0,33 not 24,23. Because I'm just getting started with Haskell, I have nooo idea what to do. Would be great if someone could help me out with this :) --- Alle Postfächer an einem Ort. Jetzt wechseln und E-Mail-Adresse mitnehmen! Rundum glücklich mit freenetMail
Hi Claudia, It sounds like you will find the mod and div functions helpful. div does integer division, that is, it rounds down to the nearest integer. mod gives the remainder after doing division. For example: (58 + 33) `div` 60 = 1 (58 + 33) `mod` 60 = 33 -Brent On Mon, Dec 1, 2014 at 10:21 AM, Claudia Weber <kaetheweber@freenet.de> wrote:
Hi guys,
I'm new to Haskell and I'm just trying out some easy functions right now, but I'm having some trouble here..
I want to display a clock
type Time = (Int, Int)
(hoursx,minutesy) x ={0,1,...,23} y={0,1,...,59} where I can add hours and minutes or set back time.
If its 23,58 for example and I want to add 35 minutes, the clock has to set to 0,33 not 24,23.
Because I'm just getting started with Haskell, I have nooo idea what to do.
Would be great if someone could help me out with this :)
--- Alle Postfächer an einem Ort Jetzt wechseln und E-Mail-Adresse mitnehmen! Rundum glücklich mit freenetMail <http://email.freenet.de/basic/Informationen>
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
Hi Claudia, your type "Time" is good. Here is how you'd define the functions for adding hours: addHour :: Int -> Time -> Time addHour myHour (hour, minute) = ((hour + myHour) `mod` 24, minute) As can be seen in the first line, this function takes an integer where you put the number of hours to add, takes a certain Time and then returns an updated time. You can try that in GHCi: put the code in a file and load it in GHCi (you need to install Haskell platform: https://www.haskell.org/platform/). $ ghci my_file.hs Then you can play with your function by typing: $ addHour 5 (10, 0) (15, 0) If you want a real program, you need to add some I/O: import Data.Time main = do time <- getCurrentTime putStrLn (show time) You can compile this short program with: ghc my_file.hs Launch it with (or click on the generated executable under windows): $ ./my_file 2014-12-01 18:12:26.989883 UTC Tada! You have a clock. Good luck with Haskell, it's not always easy but very rewarding language. Corentin On Mon, Dec 1, 2014 at 4:21 PM, Claudia Weber <kaetheweber@freenet.de> wrote:
Hi guys,
I'm new to Haskell and I'm just trying out some easy functions right now, but I'm having some trouble here..
I want to display a clock
type Time = (Int, Int)
(hoursx,minutesy) x ={0,1,...,23} y={0,1,...,59} where I can add hours and minutes or set back time.
If its 23,58 for example and I want to add 35 minutes, the clock has to set to 0,33 not 24,23.
Because I'm just getting started with Haskell, I have nooo idea what to do.
Would be great if someone could help me out with this :)
--- Alle Postfächer an einem Ort Jetzt wechseln und E-Mail-Adresse mitnehmen! Rundum glücklich mit freenetMail <http://email.freenet.de/basic/Informationen>
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
participants (3)
-
Brent Yorgey -
Claudia Weber -
Corentin Dupont