From 7a6e519e16ac7d1e5073fd1e5c7a26a697e6e5bf Mon Sep 17 00:00:00 2001 From: zweije Date: Wed, 25 Jul 2001 15:14:56 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r572, which included commits to RCS files with non-trunk default branches. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@573 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- sucl/pfun.dcl | 3 +++ sucl/pfun.icl | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/sucl/pfun.dcl b/sucl/pfun.dcl index 49db62d..baea62f 100644 --- a/sucl/pfun.dcl +++ b/sucl/pfun.dcl @@ -28,6 +28,9 @@ postcomp :: (.ran1 -> .ran2) !(Pfun .dom .ran1) -> Pfun .dom .ran2 // Build a total function from a partial one by supplying a default value total :: .ran !(Pfun dom .ran) dom -> .ran | == dom +// Apply partial function with a default value +foldpfun :: (.ran1 -> .ran2) .ran2 !(Pfun dom .ran1) dom -> .ran2 | == dom + // Domain restriction of a partial function domres :: !.[dom] .(Pfun dom ran) -> Pfun dom ran | == dom diff --git a/sucl/pfun.icl b/sucl/pfun.icl index 14df397..c303b7d 100644 --- a/sucl/pfun.icl +++ b/sucl/pfun.icl @@ -54,6 +54,11 @@ total def (Restrict x p) arg | arg==x = def = total def p arg +// Apply partial function with a default value +foldpfun :: (.ran1 -> .ran2) .ran2 !(Pfun dom .ran1) dom -> .ran2 | == dom +foldpfun found notfound pfun arg + = total notfound (postcomp found pfun) arg + domres :: !.[dom] .(Pfun dom ran) -> Pfun dom ran | == dom domres domain oldpfun = foldr adddom emptypfun domain -- cgit v1.2.3