move reverse.rkt and set-all.rkt to lens/private

This commit is contained in:
AlexKnauth 2016-01-05 19:54:19 -05:00
parent 245905d96c
commit 4ae4d31ff5
4 changed files with 56 additions and 52 deletions

View 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))

View 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)))

View File

@ -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

View File

@ -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