doc-src/IsarAdvanced/Codegen/Thy/examples/example.ML
changeset 29297 62e0f892e525
parent 28421 05d202350b8d
child 29798 6df726203e39
equal deleted inserted replaced
29296:96cf8edb6249 29297:62e0f892e525
     9 fun list_case f1 f2 (a :: lista) = f2 a lista
     9 fun list_case f1 f2 (a :: lista) = f2 a lista
    10   | list_case f1 f2 [] = f1;
    10   | list_case f1 f2 [] = f1;
    11 
    11 
    12 datatype 'a queue = Queue of 'a list * 'a list;
    12 datatype 'a queue = Queue of 'a list * 'a list;
    13 
    13 
    14 val empty : 'a queue = Queue ([], []);
    14 val empty : 'a queue = Queue ([], [])
    15 
    15 
    16 fun dequeue (Queue ([], [])) = (NONE, Queue ([], []))
    16 fun dequeue (Queue ([], [])) = (NONE, Queue ([], []))
    17   | dequeue (Queue (xs, y :: ys)) = (SOME y, Queue (xs, ys))
    17   | dequeue (Queue (xs, y :: ys)) = (SOME y, Queue (xs, ys))
    18   | dequeue (Queue (v :: va, [])) =
    18   | dequeue (Queue (v :: va, [])) =
    19     let
    19     let