diff --git a/Changes.md b/Changes.md index 186ca01..efcb6f7 100644 --- a/Changes.md +++ b/Changes.md @@ -2,6 +2,7 @@ CFStream Release Notes cfstream-1.1.2 2014-06-16 ------------------------- +* bugfix on `drop` and `skip` * Reduced deps to core_kernel instead of core. cfstream-1.1.1 2014-03-02 diff --git a/src/lib/CFStream_stream.ml b/src/lib/CFStream_stream.ml index d02613c..9045904 100644 --- a/src/lib/CFStream_stream.ml +++ b/src/lib/CFStream_stream.ml @@ -156,7 +156,8 @@ let rec drop_whilei xs ~f = let drop_while xs ~f = drop_whilei xs ~f:(const f) let drop xs ~n = - drop_whilei xs ~f:(fun j _ -> j < n) + let i = ref n in + drop_whilei xs ~f:(fun _ _ -> if !i > 0 then (decr i ; true) else false) let skip_whilei xs ~f = drop_whilei xs ~f ;