]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/smalltalk/library/library.factor
factor: trim using lists
[factor.git] / extra / smalltalk / library / library.factor
index 1a8cb8d1773378e4b528b32b2e9a146548dfdb7d..6958b915d644477e468b64f4f1e744092a7c1534 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: kernel present io math sequences assocs math.ranges fry
-tools.time locals smalltalk.selectors smalltalk.ast smalltalk.classes ;
+USING: kernel present io math sequences assocs ranges
+math.order tools.time smalltalk.selectors smalltalk.ast ;
 IN: smalltalk.library
 
 SELECTOR: print
@@ -10,6 +10,16 @@ SELECTOR: asString
 M: object selector-print dup present print ;
 M: object selector-asString present ;
 
+SELECTOR: print:
+SELECTOR: nextPutAll:
+SELECTOR: tab
+SELECTOR: nl
+
+M: object selector-print: [ present ] dip stream-print nil ;
+M: object selector-nextPutAll: selector-print: ;
+M: object selector-tab "    " swap selector-print: ;
+M: object selector-nl stream-nl nil ;
+
 SELECTOR: +
 SELECTOR: -
 SELECTOR: *
@@ -30,6 +40,12 @@ M: object selector-<= swap <= ;
 M: object selector->= swap >= ;
 M: object selector-=  swap =  ;
 
+SELECTOR: min:
+SELECTOR: max:
+
+M: object selector-min: min ;
+M: object selector-max: max ;
+
 SELECTOR: ifTrue:
 SELECTOR: ifFalse:
 SELECTOR: ifTrue:ifFalse:
@@ -38,6 +54,10 @@ M: object selector-ifTrue: [ call( -- result ) ] [ drop nil ] if ;
 M: object selector-ifFalse: [ drop nil ] [ call( -- result ) ] if ;
 M: object selector-ifTrue:ifFalse: [ drop call( -- result ) ] [ nip call( -- result ) ] if ;
 
+SELECTOR: isNil
+
+M: object selector-isNil nil eq? ;
+
 SELECTOR: at:
 SELECTOR: at:put:
 
@@ -55,9 +75,9 @@ M:: object selector-do: ( quot receiver -- nil )
 SELECTOR: to:
 SELECTOR: to:do:
 
-M: object selector-to: swap [a,b] ;
+M: object selector-to: swap [a..b] ;
 M:: object selector-to:do: ( to quot from -- nil )
-    from to [a,b] [ quot call( i -- result ) drop ] each nil ;
+    from to [a..b] [ quot call( i -- result ) drop ] each nil ;
 
 SELECTOR: value
 SELECTOR: value:
@@ -77,4 +97,4 @@ M: object selector-new new ;
 
 SELECTOR: time
 
-M: object selector-time '[ _ call( -- result ) ] time ;
\ No newline at end of file
+M: object selector-time '[ _ call( -- result ) ] time ;