Εδώ δοκιμάζουμε αν η Haskell «δουλεύει» με ελληνικούς χαρακτήρες.
Το πρόγραμμα επιλύει εξισώσεις α΄ βαθμού τής μορφής αx + β = 0
. Ελέγχει όλες τις δυνατές περιπτώσεις (αδύνατη, αόριστη). Πατήστε το βέλος και δοκιμάστε το!
-- Λύση πρωτοβάθμιας εξίσωσης
-- 28 Ιουνίου 2013
root :: Double -> Double -> String
root 0 0 = "Αόριστη - απειρες λύσεις"
root 0 _ = "Αδύνατη - καμμία λύση"
root a b = "x = " ++ show (-b / a)
main :: IO ()
main = do
putStrLn "Λύση πρωτοβάθμιας εξίσωσης αx + β = 0"
putStrLn "Δώστε την κλίση (α) και την y-τεταγμένη (β):"
sl <- getLine
yi <- getLine
putStrLn $ "Κλίση (α) = " ++ sl
putStrLn $ "y-τεταγμένη (β) = " ++ yi
putStrLn $ (root (read sl) (read yi))
Το ίδιο πρόγραμμα σε Pascal:
(Δυστυχώς, δεν υπάρχει δυνατότητα εκτέλεσης τού προγράμματος σε Pascal. Μόνο σε Haskell!)
{ Λύση πρωτοβάθμιας εξίσωσης }
{ 28 Ιουνίου 2013 }
program LinEq (input, output);
var
sl, yi: Real;
procedure Root(a, b: Real);
begin
if a = 0 then
if b = 0 then
WriteLn('Αόριστη - άπειρες λύσεις')
else
WriteLn('Αδύνατη - καμμία λύση')
else
WriteLn('x = ', -b/a)
end;
begin
WriteLn('Λύση πρωτοβάθμιας εξίσωσης αx + β = 0');
WriteLn('Δώστε την κλίση (α) και την τεταγμένη y (β):');
ReadLn(sl);
ReadLn(yi);
WriteLn('Κλίση (α) = ', sl);
WriteLn('y-τεταγμένη (β) = ', yi);
Root(sl, yi)
end.
Βλέπουμε πόσο ομορφότερος και συντομότερος είναι ο κώδικας Haskell. Επίσης, βλέπουμε πόσο πιο κοντά στα Μαθηματικά είναι. Ας σημειωθεί πως η Pascal υπήρξε η γλώσσα με την οποία μεγάλωσαν εκατομμύρια προγραμματιστών σ' όλον τον κόσμο.