StudentML‎ > ‎

Примеры на языке StudentML

Арифметика и константы

 Выражение Результат
 1 1
 2+3*4 14
 true true
 5 >= 4 false
 true = false false

Идентификаторы

 Выражение Результат
 let x = 2 in x 2
 let y = 2*2 in y*y-1 15
 let x = 5 in
   let y = 6 in
     x + y
 11
 let x = 3 in
   let y = if 2*x >= x*x then 2 else x+1 in
     let x = y*y + x
     in y / 2      
 38

Функции, статическая область видимости

 Выражение Результат
 (fun x -> x+3) 5 8
 ((fun x -> x)
  (fun x -> x + 5))
 3
 8
 let a = fun x -> fun y -> x+y in
   let incr = a 1 in
     add (incr (incr (a 2 3))) 4
 11
 let x = 3 in
  let f = fun y -> x + y in
   let x = 5 in
    f 4
 7

Рекурсивные функции (факториал)

let rec factorial = fun n -> 
   if n > 0 then 
      n * fact (n-1) 
   else 
     1
 in fact 5

result is 120



Comments