at JPR's request: modified memq to return boolean and added memq? to teaching languages
the symmetry to member/member? suggested he is correct
This commit is contained in:
parent
05ce8bce80
commit
ede0e3c625
|
@ -491,12 +491,16 @@
|
||||||
Evaluates the number of items on a list.
|
Evaluates the number of items on a list.
|
||||||
@interaction[#:eval (bsl) x (length x)]
|
@interaction[#:eval (bsl) x (length x)]
|
||||||
}
|
}
|
||||||
@defproc[(memq [x any/c][l list?]) (or/c false list?)]{
|
@defproc[((beginner-memq memq) [x any/c][l list?]) boolean?]{
|
||||||
Determines whether some value is on some list if so, it produces the
|
Determines whether some value @racket[x] is on some list @racket[l],
|
||||||
suffix of the list that starts with x if not, it produces false. (It
|
using @racket[eq?] to compare @racket[x] with items on @racket[l].
|
||||||
compares values with the eq? predicate.)
|
|
||||||
@interaction[#:eval (bsl) x (memq (list (list 1 2 3)) x)]
|
@interaction[#:eval (bsl) x (memq (list (list 1 2 3)) x)]
|
||||||
}
|
}
|
||||||
|
@defproc[((beginner-memq? memq?) [x any/c][l list?]) boolean?]{
|
||||||
|
Determines whether some value @racket[x] is on some list @racket[l],
|
||||||
|
using @racket[eq?] to compare @racket[x] with items on @racket[l].
|
||||||
|
@interaction[#:eval (bsl) x (memq? (list (list 1 2 3)) x)]
|
||||||
|
}
|
||||||
@defproc[(memv [x any/c][l list?]) (or/c false list)]{
|
@defproc[(memv [x any/c][l list?]) (or/c false list)]{
|
||||||
Determines whether some value is on the list if so, it produces the
|
Determines whether some value is on the list if so, it produces the
|
||||||
suffix of the list that starts with x if not, it produces false. (It
|
suffix of the list that starts with x if not, it produces false. (It
|
||||||
|
|
|
@ -139,6 +139,16 @@ namespace.
|
||||||
(current-continuation-marks))))
|
(current-continuation-marks))))
|
||||||
(sqr a)))
|
(sqr a)))
|
||||||
|
|
||||||
|
(define-teach beginner memq
|
||||||
|
(lambda (a b)
|
||||||
|
(check-second 'memq a b)
|
||||||
|
(not (boolean? (memq a b)))))
|
||||||
|
|
||||||
|
(define-teach beginner memq?
|
||||||
|
(lambda (a b)
|
||||||
|
(check-second 'memq? a b)
|
||||||
|
(not (boolean? (memq a b)))))
|
||||||
|
|
||||||
(define-teach beginner member
|
(define-teach beginner member
|
||||||
(lambda (a b)
|
(lambda (a b)
|
||||||
(check-second 'member a b)
|
(check-second 'member a b)
|
||||||
|
@ -402,6 +412,8 @@ namespace.
|
||||||
beginner-list?
|
beginner-list?
|
||||||
beginner-member
|
beginner-member
|
||||||
beginner-member?
|
beginner-member?
|
||||||
|
beginner-memq
|
||||||
|
beginner-memq?
|
||||||
beginner-remove
|
beginner-remove
|
||||||
beginner-cons
|
beginner-cons
|
||||||
beginner-car
|
beginner-car
|
||||||
|
|
Loading…
Reference in New Issue
Block a user