Не могу понять уже, что я тут писал, всего-то нужна функция которая режет лист на две части и возвращает левую часть то, что я написал на ракете, не работает и не пойму почему
#lang racket
(define *distance-lst* (list 1 2 3 4 5 6))
(define *A-distance* 3)
(define *left-A-lst* '())
(define d-lst (length *distance-lst*))
(define *output-lst* '())
(define (slice input-lst a output-lst)
(if (< (first input-lst) a)
(slice (cons (first input-lst) output-lst)
a
(set! input-lst (rest input-lst)))
output-lst))
;;(define (split-lst lst-input a lst-output)
; (if (< (first lst-input) a)
; (split-lst (set! lst-input (rest lst-input))
; a
; (set! lst-output
; (cons
; (first lst-input) lst-output)))
; lst-output))
(slice *distance-lst* *A-distance* *left-A-lst*)
и вот на elisp и работает как надо, задолбало, что не так не могу понять эту ракету
(defun slice (input-lst a output-lst)
(if (< (car input-lst) a)
(slice (cdr input-lst) a (push (car input-lst) output-lst))
output-lst))
(nreverse (slice '(1 2 3 4 5 6) 5 '()))