diff lib/ur/list.ur @ 1519:ada582d07ae1

List.find
author Adam Chlipala <adam@chlipala.net>
date Sun, 24 Jul 2011 15:47:09 -0400
parents 3061d1bf4b2d
children dde3bd82cb3d
line wrap: on
line diff
--- a/lib/ur/list.ur	Sun Jul 24 14:49:40 2011 -0400
+++ b/lib/ur/list.ur	Sun Jul 24 15:47:09 2011 -0400
@@ -206,6 +206,20 @@
         fold []
     end
 
+fun find [a] f =
+    let
+        fun find' ls =
+            case ls of
+                [] => None
+              | x :: ls =>
+                if f x then
+                    Some x
+                else
+                    find' ls
+    in
+        find'
+    end
+
 fun search [a] [b] f =
     let
         fun search' ls =