나는 다음 내용이 목록을 가지고 :길이
l1 = ((at1) (at2))
및 l1
에서 생성 l2
와
l2 = (((at11) (at21))((at12) (at22)))
.
문제는 다음과 같습니다. l2
은 동일한 문제의 두 인스턴스가 될 것이지만, (길이 l1)을 사용하면 결과가 2가되며이 문제는 올바르지 않습니다. 접근. (길이 l1) = 1 인 결과 (목록 l1)을 시도했지만이 기능이 제 기능을 제대로 수행하지 못합니다. l2
.
이 코드를 사용해 보았지만이 두 목록에서는 정상적으로 작동하지 않습니다. 이 경우 l2
은 l3
이라는 다른 목록을 만들 수 있지만 l1
은 l2
을 만들 수 없습니다. 코드는 다음과 같습니다
(define (applyfunc l1)
(let ((l2 '()))
(cond ((not(null? l1))
(for/list ([i (length l1)])
(set! l2 (append l2 (func l1)))
)
)
)
l2)
)
(applyfunc ((at1) (at2))...)
는, 즉, AT1 및 AT2 l2
을 부가 요소의 전문화를 반환해야합니다. 그러나 위의 코드에서는 l1 = ((at1) (at2))
이 두 개 (길이 l1 = 2)인데 인스턴스가 아니기 때문에 작업하지 않습니다. l2
을 가져 가면 인스턴스가 2 개이므로 결과는 l3
이고 각 인스턴스에 대해 2 개의 속성, 즉 l2
과 4 개의 인스턴스와 2 개의 속성이있는 목록이 있습니다. 문제는 l1
이 입력 될 때 (at1)
과 (at2)
을 고려하지만 어떤 것도 허용하지 않는다는 것입니다. ((at1)(at2))
어떻게 처리 할 수 있습니까? 도와 주셔서 감사합니다!
원하는 결과가 있습니까? 'l1'은 템플릿이고,'l2'는 두 개의 템플릿을 가지고 있으므로 결과는 '2'입니까? – GoZoner
@GoZoner 'l1'의 길이가 2가 아니라 1이 될 것이고,'l2'의 길이는 2가 될 것입니다. 그러면'l1'을 인스턴스로,'l2'를 두 인스턴스로 취할 수 있습니다. 여기서 설명하는 것과 같은 함수. –