src/Pure/library.ML
changeset 11773 983d2db52062
parent 11514 a12def3d1847
child 11853 651650b717e1
equal deleted inserted replaced
11772:cf618fe8facd 11773:983d2db52062
    89   val length: 'a list -> int
    89   val length: 'a list -> int
    90   val take: int * 'a list -> 'a list
    90   val take: int * 'a list -> 'a list
    91   val drop: int * 'a list -> 'a list
    91   val drop: int * 'a list -> 'a list
    92   val dropwhile: ('a -> bool) -> 'a list -> 'a list
    92   val dropwhile: ('a -> bool) -> 'a list -> 'a list
    93   val nth_elem: int * 'a list -> 'a
    93   val nth_elem: int * 'a list -> 'a
       
    94   val map_nth_elem: int -> ('a -> 'a) -> 'a list -> 'a list
    94   val last_elem: 'a list -> 'a
    95   val last_elem: 'a list -> 'a
    95   val split_last: 'a list -> 'a list * 'a
    96   val split_last: 'a list -> 'a list * 'a
    96   val nth_update: 'a -> int * 'a list -> 'a list
    97   val nth_update: 'a -> int * 'a list -> 'a list
    97   val find_index: ('a -> bool) -> 'a list -> int
    98   val find_index: ('a -> bool) -> 'a list -> int
    98   val find_index_eq: ''a -> ''a list -> int
    99   val find_index_eq: ''a -> ''a list -> int
   506 fun nth_elem NL =
   507 fun nth_elem NL =
   507   (case drop NL of
   508   (case drop NL of
   508     [] => raise LIST "nth_elem"
   509     [] => raise LIST "nth_elem"
   509   | x :: _ => x);
   510   | x :: _ => x);
   510 
   511 
       
   512 fun map_nth_elem 0 f (x :: xs) = f x :: xs
       
   513   | map_nth_elem n f (x :: xs) = x :: map_nth_elem (n - 1) f xs
       
   514   | map_nth_elem _ _ [] = raise LIST "map_nth_elem";
       
   515 
   511 (*last element of a list*)
   516 (*last element of a list*)
   512 fun last_elem [] = raise LIST "last_elem"
   517 fun last_elem [] = raise LIST "last_elem"
   513   | last_elem [x] = x
   518   | last_elem [x] = x
   514   | last_elem (_ :: xs) = last_elem xs;
   519   | last_elem (_ :: xs) = last_elem xs;
   515 
   520