Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
5
Task/Vector/Factor/vector-1.factor
Normal file
5
Task/Vector/Factor/vector-1.factor
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
(scratchpad) USE: math.vectors
|
||||
(scratchpad) { 1 2 } { 3 4 } v+
|
||||
|
||||
--- Data stack:
|
||||
{ 4 6 }
|
||||
30
Task/Vector/Factor/vector-2.factor
Normal file
30
Task/Vector/Factor/vector-2.factor
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
USING: accessors arrays kernel math parser prettyprint
|
||||
prettyprint.custom sequences ;
|
||||
IN: rosetta-code.vector
|
||||
|
||||
TUPLE: vec { x real read-only } { y real read-only } ;
|
||||
C: <vec> vec
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: parts ( vec -- x y ) [ x>> ] [ y>> ] bi ;
|
||||
: devec ( vec1 vec2 -- x1 y1 x2 y2 ) [ parts ] bi@ rot swap ;
|
||||
|
||||
: binary-op ( vec1 vec2 quot -- vec3 )
|
||||
[ devec ] dip 2bi@ <vec> ; inline
|
||||
|
||||
: scalar-op ( vec1 scalar quot -- vec2 )
|
||||
[ parts ] 2dip curry bi@ <vec> ; inline
|
||||
|
||||
PRIVATE>
|
||||
|
||||
SYNTAX: VEC{ \ } [ first2 <vec> ] parse-literal ;
|
||||
|
||||
: v+ ( vec1 vec2 -- vec3 ) [ + ] binary-op ;
|
||||
: v- ( vec1 vec2 -- vec3 ) [ - ] binary-op ;
|
||||
: v* ( vec1 scalar -- vec2 ) [ * ] scalar-op ;
|
||||
: v/ ( vec1 scalar -- vec2 ) [ / ] scalar-op ;
|
||||
|
||||
M: vec pprint-delims drop \ VEC{ \ } ;
|
||||
M: vec >pprint-sequence parts 2array ;
|
||||
M: vec pprint* pprint-object ;
|
||||
17
Task/Vector/Factor/vector-3.factor
Normal file
17
Task/Vector/Factor/vector-3.factor
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
USING: kernel formatting prettyprint rosetta-code.vector
|
||||
sequences ;
|
||||
IN: rosetta-code.vector
|
||||
|
||||
: demo ( a b quot -- )
|
||||
3dup [ unparse ] tri@ rest but-last
|
||||
"%16s %16s%3s= " printf call . ; inline
|
||||
|
||||
VEC{ -8.4 1.35 } VEC{ 10 11/123 } [ v+ ] demo
|
||||
VEC{ 5 3 } VEC{ 4 2 } [ v- ] demo
|
||||
VEC{ 4 -8 } 2 [ v* ] demo
|
||||
VEC{ 5 7 } 2 [ v/ ] demo
|
||||
|
||||
! You can still make a vector without the literal syntax of
|
||||
! course.
|
||||
|
||||
5 2 <vec> 1.3 [ v* ] demo
|
||||
Loading…
Add table
Add a link
Reference in a new issue