Commit 20ff5ac6 authored by Pietro Abate's avatar Pietro Abate
Browse files

[r2003-07-29 14:20:20 by cvscast] Empty log message

Original author: cvscast
Date: 2003-07-29 14:20:20+00:00
parent 743ae321
......@@ -352,6 +352,43 @@ let doc : Xhtml =
bold [doc];;
let [x] = bold [doc] in print_xml x;;
";"reference","(* In CDuce the expression \"ref T exp\" returns a reference *)
(* to the result of \"exp\" and has type \"ref T\" provided that *)
(* \"exp\" is of type \"T\". References come equipped with three *)
(* operators: \":=\" (assignment), \"!\" (dereferencing), and \";\"*)
(* (sequencing). *)
let stack = ref [Int*] []
let fun push(x : Int) : [] =
stack := [x !!stack]
let fun pop ([] : []) : Int =
match !stack with [x ;y] -> stack := y; x | _ -> raise \"Empty stack\"
(* In [ pattern ;y] the variable y captures the rest of the *)
(* sequence. It is equivalent to [pattern y::_*] *)
(* *)
(* Since sequences are encoded by pairs, we could write *)
(* the following [deprecated] equivalent definitions *)
(*
let fun push(x : Int) : [] =
stack := (x, !stack)
let fun pop ([] : []) : Int =
match !stack with (x, y) -> stack := y; x | _ -> raise \"Empty stack\"
*)
;;
push 1;;
push 2;;
push 3;;
pop [];;
pop [];;
pop [];;
pop [];;
"; ]
let present = "<ul><li><a href=\"/cgi-bin/cduce?example=xml\">XML elements.</a>
XML elements.
......@@ -377,4 +414,6 @@ The good old XML bibliography example.
Syntactic sugar for projection.
</li><li><a href=\"/cgi-bin/cduce?example=xtransform\">Tree transformations.</a>
How to perform XSLT-like transformations.
</li><li><a href=\"/cgi-bin/cduce?example=reference\">References.</a>
Mutable values.
</li></ul>"
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment