From 4c4c47de774ab0b11974f9859dfe36c71d4d4cd0 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 20 Jul 2008 01:12:15 -0500 Subject: [PATCH] Add an unzip word --- core/assocs/assocs.factor | 3 +++ extra/koszul/koszul.factor | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/assocs/assocs.factor b/core/assocs/assocs.factor index be796ca554..b613147f29 100755 --- a/core/assocs/assocs.factor +++ b/core/assocs/assocs.factor @@ -158,6 +158,9 @@ M: assoc value-at* swap [ = nip ] curry assoc-find nip ; : zip ( keys values -- alist ) 2array flip ; inline +: unzip ( assoc -- keys values ) + dup assoc-empty? [ drop { } { } ] [ >alist flip first2 ] if ; + : search-alist ( key alist -- pair i ) [ first = ] with find swap ; inline diff --git a/extra/koszul/koszul.factor b/extra/koszul/koszul.factor index 37c2137433..2b67a3755e 100755 --- a/extra/koszul/koszul.factor +++ b/extra/koszul/koszul.factor @@ -184,7 +184,7 @@ DEFER: (d) [ length ] keep [ (graded-ker/im-d) ] curry map ; : graded-betti ( generators -- seq ) - basis graded graded-ker/im-d flip first2 but-last 0 prefix v- ; + basis graded graded-ker/im-d unzip but-last 0 prefix v- ; ! Bi-graded for two-step complexes : (bigraded-ker/im-d) ( u-deg z-deg bigraded-basis -- null/rank )