This repository has been archived on 2024-01-18. You can view files and clone it, but cannot push or open issues or pull requests.
compilation/flap/tests/01-Parsing/999-slam.good.expected

101 lines
2.7 KiB
Text
Raw Permalink Normal View History

2023-10-04 15:40:22 +02:00
let x = 0
let f = \ x -> x
fun g x = x
fun h (x, y) = ((x + i y)) and i z = (h (z, z))
fun arithmetic
(x, y, z) =
((((x + (y * z)) + ((x + y) * z)) + (z * (x + y))))
let some_Int = 12345
let some_other_Int = 3405691582
let some_other_other_Int = 1354
let yet_another_Int = 30344
let some_char = 'a'
let some_other_char = '@'
let some_other_other_char = '\170'
let yet_another_char = '\t'
let some_String =
"N'oubliez pas, car votre vie en d\233pend. Ne clignez pas des yeux. N'y pensez m\234me pas. Clignez et vous \234tes morts. Ils sont rapides, bien plus rapides que vous ne le croyez. Ne leur tournez pas le dos. Ne regardez pas ailleurs. Et surtout, ne clignez pas. Bonne chance."
let some_other_String =
"\n\n\t Le Docteur : Vous avez d\233truit l'inscription la plus ancienne de l'univers.\n\n\t River Song : Tu m'y as oblig\233e, tu ne r\233pondais pas au t\233l\233phone.\n\nOups\b\r\n"
let yet_another_String = "Say \"Hello!\""
type int_list =
INil | ICons (int, int_list)
type list<`a> =
Nil | Cons (`a, list<`a>)
type llist<`a> =
LNil | LCons (`a, unit -> llist<`a>)
type marthe_exp =
EInt (int)
| EAdd (marthe_exp, marthe_exp)
| ESum (marthe_exp, marthe_exp)
| EVar (string)
| ESum (string, marthe_exp, marthe_exp, marthe_exp)
type box =
{
what_s_in_the_box : int }
type person =
{
name : string , age : int }
type closure<`env, `a, `b> =
{
code : (`env * `a) -> `b , env : `env }
type container_functions<`e, `c, `b> =
{
map : (`e -> `a * `c) -> `c
, fold : (`e -> unit * `c) -> unit
, weird : `e -> ((`c * `e) -> `b)
}
let id : [`a]`a -> `a = \ x -> x
let id_int = id < int >
let stable = id < int > 37
let compose : [`a, `b, `c](`a -> `b * `b -> `c) -> (`a -> `c) =
\ (f, g) -> (\ x -> (f (g x) : `c))
let id_id_id = compose < int, int, int > (id, id)
let id_id_id_2 =
compose < (int -> int), (int -> int), (int -> int) > (id, id)
let an_empty_list = Nil < int >
let a_cool_list =
Cons < int >(1, Cons < int >(1, an_empty_list))
let a_person = {name = "Luke", age = 28}
let a_name = a_person.name
let main =
(start_with_this 0); ((do_that ("foo", "bar")); (conclude 0))
let computation = let y = 42 ; let z = 13 ; compute 0
fun : [`a]list<`a> -> int len
l =
(match (l) {
| Nil < `a > -> 0 | Cons < `a >(x, xs) -> ((1 + len < `a > xs))
})
fun fact
n =
(if ((n =? 0)) then { 1 }
else
{
if ((n =? 1)) then { 1 }
else { if ((n =? 2)) then { 2 } else { (fact ((n - 1)) * n) } }
})
fun ifact
n =
(let accu = (ref 1) ;
let k = (ref n) ;
while
(((! k)
>?
0))
{ (accu := ((! accu) * (! k))); (k := ((! k) - 1)) };
((! accu)))
fun ifact2
n =
(let accu = (ref 1) ;
for k from (1) to (n) { accu := ((! accu) * k) }; ((! accu)))