Skip to content

Commit

Permalink
Merge pull request #20 from shriram/rename-vector-operators
Browse files Browse the repository at this point in the history
rename vector operators
  • Loading branch information
shriram authored Jul 22, 2022
2 parents 6b3e242 + 9516278 commit a74082a
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
8 changes: 4 additions & 4 deletions fun/semantics.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
let let*
if and or not true false eq? equal?
begin
ivec vlen vref
ivec vlen vec-ref
pair left right pair?
+ - * /
zero?
Expand Down Expand Up @@ -78,16 +78,16 @@

(define ivec vector-immutable)
(define vlen vector-length)
(define vref vector-ref)
(define vec-ref vector-ref)

(define (pair a b)
(ivec a b))
(define (left p)
(unless (= (vlen p) 2)
(error 'left "argument must be a pair: ~a" p))
(vref p 0))
(vec-ref p 0))
(define (right p)
(unless (= (vlen p) 2)
(error 'right "argument must be a pair: ~a" p))
(vref p 1))
(vec-ref p 1))
(define (pair? v) (and (vector? v) (= (vlen v) 2)))
10 changes: 5 additions & 5 deletions scribblings/smol.scrbl
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ exotic quoted forms. (If you don't know what these are, ignore them.)
@deftogether[(
@defproc[(ivec (elem Any) ...) Vec]
@defproc[(vlen (expr Vec)) Number]
@defproc[(vref (vec-expr Vec) (idx-expr Number)) Any]
@defproc[(vec-ref (vec-expr Vec) (idx-expr Number)) Any]
)]{
The @code{ivec} operation builds an @emph{immutable} vector of the
elements in @code{elem}. Vector elements need not be of the same
type. @code{vlen} computes its length, while @code{vref} indexes
type. @code{vlen} computes its length, while @code{vec-ref} indexes
into it (starting from @code{0}).
}

Expand Down Expand Up @@ -160,10 +160,10 @@ operations.

@deftogether[(
@defproc[(mvec (elem Any) ...) Vec]
@defproc[(vset! (vec Vec) (idx Num) (val Any)) Void]
@defproc[(vec-set! (vec Vec) (idx Num) (val Any)) Void]
)]{
@code{mvec} creates @emph{mutable} vectors, and @code{vset!} modifies
them. @code{vset!} cannot modify an immutable vector.
@code{mvec} creates @emph{mutable} vectors, and @code{vec-set!} modifies
them. @code{vec-set!} cannot modify an immutable vector.
}

@deftogether[(
Expand Down
4 changes: 2 additions & 2 deletions state/semantics.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
[except-out [all-from-out smol/fun/semantics] checked-#%app]
[rename-out [checked-#%app #%app]])

(provide mvec vset!)
(provide mvec vec-set!)
(provide mpair set-left! set-right!)

(provide set!)

(define mvec vector)
(define vset! vector-set!)
(define vec-set! vector-set!)

(define (mpair a b)
(mvec a b))
Expand Down
2 changes: 1 addition & 1 deletion state/tests/all.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
(test z (pair 1 2))

(defvar w (mvec 1 2 3))
(vset! w 2 4)
(vec-set! w 2 4)
(test w #(1 2 4))

(deffun (nested-i x)
Expand Down

0 comments on commit a74082a

Please sign in to comment.