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"))) `(pre ,(string-join ink-script "\n")))
;; Lib
(define (sub-string-list string-list start len part) (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? (car string-list))
(if (> (string-length (car string-list)) start) (if (> (string-length (car string-list)) start)
(append part (append part
(list (substring (car string-list) 0 start) (if (= start 0 )
(substring (car string-list) start (+ start len))) '()
(substring (car string-list) 0 start))
(list (substring (car string-list) start (+ start len)))
(if (= (+ start len) (string-length (car string-list))) (if (= (+ start len) (string-length (car string-list)))
'() '()
(list (substring (car string-list) (+ start len) (string-length (car string-list))))) (list (substring (car string-list) (+ start len) (string-length (car string-list)))))
(cdr string-list)) (cdr string-list))
(sub-string-list (cdr string-list) (sub-string-list-iter (cdr string-list)
(- start (string-length (car string-list))) (- start (string-length (car string-list)))
len len
(append part (list (car string-list))))) (append part (list (car string-list)))))
(sub-string-list (cdr string-list) (sub-string-list-iter (cdr string-list)
(- start (string-length (car (last-pair (car string-list))))) (- start (string-length (car (last-pair (car string-list)))))
len len
(append part (list (car string-list)))))) (append part (list (car string-list))))))
(sub-string-list-iter string-list start len '()))
(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 ;; Main
(set! *template* template-task) (set! *template* template-task)