aboutsummaryrefslogtreecommitdiff
path: root/tests/test/lens.scm
blob: 0797e3aa0425a0c0a45092bd640d76545ba428d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(define-module (test lens)
  :use-module (srfi srfi-64)
  :use-module (srfi srfi-64 test-error)
  :use-module (srfi srfi-88)
  :use-module (hnh util lens))


(define first (ref 0))

(test-equal '((1)) (first '(((1)))))
(test-equal '((2)) (set '(((1))) (compose-lenses first first) 2))
(test-equal '(((2))) (set '(((1))) (compose-lenses first first first) 2))


;; (list-change (iota 10) 5 'Hello)
;; => (0 1 2 3 4 Hello 6 7 8 9)

(test-equal '(1 (10) 3) (set '(1 (2) 3) (compose-lenses (ref 1) (ref 0)) 10))
(test-equal '(1 (10) 3) (set '(1 (2) 3) (ref 1) (ref 0) 10))

;; (set (list (iota 10)) first first 11)