Compare commits

..

2 commits

Author SHA1 Message Date
6425e62a20 feat: add find-string-list-len
Signed-off-by: SouthFox <master@southfox.me>
2024-11-01 13:59:40 +08:00
1d3d292fa7 feat: update sub-string-list
Signed-off-by: SouthFox <master@southfox.me>
2024-11-01 13:51:34 +08:00

View file

@ -165,25 +165,38 @@
))
`(pre ,(string-join ink-script "\n")))
;; Lib
(define (sub-string-list string-list start len)
(define (sub-string-list-iter string-list start len part)
(if (string? (car string-list))
(if (> (string-length (car string-list)) start)
(append part
(if (= start 0 )
'()
(substring (car string-list) 0 start))
(list (substring (car string-list) start (+ start len)))
(if (= (+ start len) (string-length (car string-list)))
'()
(list (substring (car string-list) (+ start len) (string-length (car string-list)))))
(cdr string-list))
(sub-string-list-iter (cdr string-list)
(- start (string-length (car string-list)))
len
(append part (list (car string-list)))))
(sub-string-list-iter (cdr string-list)
(- start (string-length (car (last-pair (car string-list)))))
len
(append part (list (car string-list))))))
(sub-string-list-iter string-list start len '()))
(define (sub-string-list string-list start len part)
(if (string? (car string-list))
(if (> (string-length (car string-list)) start)
(append part
(list (substring (car string-list) 0 start)
(substring (car string-list) start (+ start len)))
(if (= (+ start len) (string-length (car string-list)))
'()
(list (substring (car string-list) (+ start len) (string-length (car string-list)))))
(cdr string-list))
(sub-string-list (cdr string-list)
(- start (string-length (car string-list)))
len
(append part (list (car string-list)))))
(sub-string-list (cdr string-list)
(- start (string-length (car (last-pair (car string-list)))))
len
(append part (list (car string-list))))))
(define (find-string-list-len string-list)
(define (find-string-list-len-iter string-list offset)
(if (string? (car string-list))
(if (string-index (car string-list) #\newline)
(+ (string-index (car string-list) #\newline) offset)
(find-string-list-len-iter (cdr string-list) (+ (string-length (car string-list)) offset)))
(find-string-list-len-iter (cdr string-list) (+ (string-length (car (last-pair (car string-list)))) offset) )))
(find-string-list-len-iter string-list 0))
;; Main
(set! *template* template-task)