src/HOL/Tools/Function/function_lib.ML
changeset 40722 441260986b63
parent 40076 6f012a209dac
child 41113 b223fa19af3c
equal deleted inserted replaced
40721:e5089e903e39 40722:441260986b63
    42   (ctx, [], t)
    42   (ctx, [], t)
    43 
    43 
    44 
    44 
    45 fun map4 _ [] [] [] [] = []
    45 fun map4 _ [] [] [] [] = []
    46   | map4 f (x :: xs) (y :: ys) (z :: zs) (u :: us) = f x y z u :: map4 f xs ys zs us
    46   | map4 f (x :: xs) (y :: ys) (z :: zs) (u :: us) = f x y z u :: map4 f xs ys zs us
    47   | map4 _ _ _ _ _ = raise Library.UnequalLengths;
    47   | map4 _ _ _ _ _ = raise ListPair.UnequalLengths;
    48 
    48 
    49 fun map7 _ [] [] [] [] [] [] [] = []
    49 fun map7 _ [] [] [] [] [] [] [] = []
    50   | map7 f (x :: xs) (y :: ys) (z :: zs) (u :: us) (v :: vs) (w :: ws) (b :: bs) = f x y z u v w b :: map7 f xs ys zs us vs ws bs
    50   | map7 f (x :: xs) (y :: ys) (z :: zs) (u :: us) (v :: vs) (w :: ws) (b :: bs) = f x y z u v w b :: map7 f xs ys zs us vs ws bs
    51   | map7 _ _ _ _ _ _ _ _ = raise Library.UnequalLengths;
    51   | map7 _ _ _ _ _ _ _ _ = raise ListPair.UnequalLengths;
    52 
    52 
    53 
    53 
    54 
    54 
    55 (* forms all "unordered pairs": [1, 2, 3] ==> [(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)] *)
    55 (* forms all "unordered pairs": [1, 2, 3] ==> [(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)] *)
    56 fun unordered_pairs [] = []
    56 fun unordered_pairs [] = []