move reverse.rkt and set-all.rkt to lens/private
This commit is contained in:
parent
245905d96c
commit
4ae4d31ff5
32
lens/private/list/reverse.rkt
Normal file
32
lens/private/list/reverse.rkt
Normal file
|
@ -0,0 +1,32 @@
|
|||
#lang sweet-exp racket/base
|
||||
|
||||
require racket/contract/base
|
||||
|
||||
provide
|
||||
contract-out
|
||||
reverse-lens (lens/c list? list?)
|
||||
last-lens (lens/c list? any/c)
|
||||
|
||||
require lens/private/base/main
|
||||
lens/private/list/main
|
||||
lens/private/compound/main
|
||||
lens/private/isomorphism/base
|
||||
|
||||
module+ test
|
||||
require rackunit fancy-app
|
||||
|
||||
|
||||
(define reverse-lens
|
||||
(make-isomorphism-lens reverse reverse))
|
||||
|
||||
module+ test
|
||||
(check-equal? (lens-view reverse-lens '(1 2 3)) '(3 2 1))
|
||||
(check-equal? (lens-transform reverse-lens '(1 2 3) (cons 4 _)) '(1 2 3 4))
|
||||
|
||||
|
||||
(define last-lens
|
||||
(lens-thrush reverse-lens first-lens))
|
||||
|
||||
module+ test
|
||||
(check-equal? (lens-view last-lens '(1 2 3)) 3)
|
||||
(check-equal? (lens-set last-lens '(1 2 3) 'a) '(1 2 a))
|
20
lens/private/view-set/set-all.rkt
Normal file
20
lens/private/view-set/set-all.rkt
Normal file
|
@ -0,0 +1,20 @@
|
|||
#lang racket/base
|
||||
|
||||
(require lens
|
||||
racket/contract/base
|
||||
fancy-app)
|
||||
|
||||
(module+ test
|
||||
(require rackunit))
|
||||
|
||||
(provide
|
||||
(contract-out
|
||||
[lens-set-all (->* (any/c any/c) #:rest (listof lens?) any/c)]))
|
||||
|
||||
|
||||
(define (lens-set-all target new-view . lenses)
|
||||
(foldl (lens-set _ _ new-view) target lenses))
|
||||
|
||||
(module+ test
|
||||
(check-equal? (lens-set-all '(1 2 3 4 5) 'a first-lens third-lens fourth-lens)
|
||||
'(a 2 a a 5)))
|
|
@ -1,32 +1,2 @@
|
|||
#lang sweet-exp racket/base
|
||||
|
||||
require racket/contract/base
|
||||
|
||||
provide
|
||||
contract-out
|
||||
reverse-lens (lens/c list? list?)
|
||||
last-lens (lens/c list? any/c)
|
||||
|
||||
require lens/private/base/main
|
||||
lens/private/list/main
|
||||
lens/private/compound/main
|
||||
lens/private/isomorphism/base
|
||||
|
||||
module+ test
|
||||
require rackunit fancy-app
|
||||
|
||||
|
||||
(define reverse-lens
|
||||
(make-isomorphism-lens reverse reverse))
|
||||
|
||||
module+ test
|
||||
(check-equal? (lens-view reverse-lens '(1 2 3)) '(3 2 1))
|
||||
(check-equal? (lens-transform reverse-lens '(1 2 3) (cons 4 _)) '(1 2 3 4))
|
||||
|
||||
|
||||
(define last-lens
|
||||
(lens-thrush reverse-lens first-lens))
|
||||
|
||||
module+ test
|
||||
(check-equal? (lens-view last-lens '(1 2 3)) 3)
|
||||
(check-equal? (lens-set last-lens '(1 2 3) 'a) '(1 2 a))
|
||||
#lang reprovide
|
||||
lens/private/list/reverse
|
||||
|
|
|
@ -1,20 +1,2 @@
|
|||
#lang racket/base
|
||||
|
||||
(require lens
|
||||
racket/contract/base
|
||||
fancy-app)
|
||||
|
||||
(module+ test
|
||||
(require rackunit))
|
||||
|
||||
(provide
|
||||
(contract-out
|
||||
[lens-set-all (->* (any/c any/c) #:rest (listof lens?) any/c)]))
|
||||
|
||||
|
||||
(define (lens-set-all target new-view . lenses)
|
||||
(foldl (lens-set _ _ new-view) target lenses))
|
||||
|
||||
(module+ test
|
||||
(check-equal? (lens-set-all '(1 2 3 4 5) 'a first-lens third-lens fourth-lens)
|
||||
'(a 2 a a 5)))
|
||||
#lang reprovide
|
||||
lens/private/view-set/set-all
|
||||
|
|
Loading…
Reference in New Issue
Block a user