]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor into regexp
authorDaniel Ehrenberg <littledan@Macintosh-122.local>
Mon, 23 Feb 2009 19:10:54 +0000 (13:10 -0600)
committerDaniel Ehrenberg <littledan@Macintosh-122.local>
Mon, 23 Feb 2009 19:10:54 +0000 (13:10 -0600)
1  2 
core/assocs/assocs.factor

index f2a04dc01b2dc183ab200e1a7c64bedf1a317d13,fdaa02e6c42cd4e8815cdc3181271f0de49f63d3..35e7535aa71f33007d651bbc0fbc06feac6fdd27
@@@ -19,6 -19,9 +19,9 @@@ GENERIC: >alist ( assoc -- newassoc 
  
  M: assoc assoc-like drop ;
  
+ : ?at ( key assoc -- value/key ? )
+     dupd at* [ [ nip ] [ drop ] if ] keep ; inline
  <PRIVATE
  
  : (assoc-each) ( assoc quot -- seq quot' )
@@@ -36,9 -39,9 +39,9 @@@
      [ first = ] with find swap ; inline
  
  : substituter ( assoc -- quot )
-     [ dupd at* [ nip ] [ drop ] if ] curry ; inline
+     [ ?at drop ] curry ; inline
  
 -: with-assoc ( assoc quot: ( value key -- assoc ) -- quot: ( key value -- ) )
 +: with-assoc ( assoc quot: ( value key assoc -- ) -- quot: ( key value -- ) )
      curry [ swap ] prepose ; inline
  
  PRIVATE>
@@@ -80,7 -83,7 +83,7 @@@
      at* drop ; inline
  
  : at-default ( key assoc -- value/key )
-     2dup at* [ 2nip ] [ 2drop ] if ; inline
+     ?at drop ; inline
  
  M: assoc assoc-clone-like ( assoc exemplar -- newassoc )
      [ dup assoc-size ] dip new-assoc