Guest

Untitled

By: a guest on Feb 12th, 2012  |  syntax: None  |  size: 1.56 KB  |  hits: 35  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. fun crossSum(a:int (*a>=0*)):int =
  2.   if a < 1 then 0 else crossSum(a div 10) + a mod 10
  3. fun decimal2(x:real):real =
  4.   Real.realRound(x*100.00)/100.00
  5. fun firstDigit(a:int):char =
  6.   String.sub(Int.toString a, 0)
  7. fun isDate2009(d:int, m:int):bool =
  8.   let
  9.     val monate = #[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  10.   in
  11.     if m > 0 andalso m < 13 then
  12.       if d > 0 andalso d <= Vector.sub(monate, m-1) then true else false
  13.     else false
  14.   end
  15. fun isLeapYear(n:int):bool =
  16.   if n <= 1582 then false
  17.   else
  18.     if (n mod 4 = 0 andalso n mod 100 <> 0) orelse n mod 400 = 0 then true
  19.     else false
  20. fun isPalindrome(s:string):bool =
  21.   explode(s) = rev(explode(s))
  22. (* isPrimeHelper ist eine Hilfsfunktion für isPrime, die die zu überprüfende
  23.  * Zahl n und einen Zähler z übergeben bekommt. Falls z ein Teiler von n ist,
  24.  * ist n nicht prim, wenn z doch ein Teiler von n ist, dann wird z in eine
  25.  * Rekursion um 1 inkrementiert. Sobald z mindestens sqrt(n) gross ist wie n,
  26.  * ist n prim, denn z kann nun nicht mehr Teiler von n sein.
  27.  *)
  28. fun isPrimeHelper(n:int, z:int):bool =
  29.   if z > floor(Math.sqrt(real n)) then true
  30.   else
  31.     if n mod z = 0 then false else isPrimeHelper(n, z+1)
  32.                  
  33. fun isPrime(n:int):bool =
  34.   isPrimeHelper(n, 2)
  35. fun tierpark(erm:bool, dauer:int, dnacht:bool, bday:bool):real =
  36.   let
  37.     val grundP = if erm then 8.50 else 14.50
  38.     val rabattP = if dauer < 2 then grundP - 4.00 else grundP
  39.     val dnachtP = if dnacht then rabattP + 1.50 else rabattP
  40.   in
  41.     if bday then dnachtP / 2.0 else dnachtP
  42.   end