我有兩個列表中的下一個內容:長度
l1 = ((at1) (at2))
和
l2 = (((at11) (at21))((at12) (at22)))
與l1
創建l2
。
的問題是:我考慮l1
等的問題的一個實例,因此l2
將是相同的問題的兩個實例,但是,當我用(長度L1),則結果爲2,這是不正確,此做法。 我試過做(列表l1),這導致(長度l1)= 1,但是這帶來我的功能不能很好地創建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))...)
應該返回atributes的專業化AT1和AT2,即l2
。但是,對於上面的代碼,它不起作用,因爲它需要兩塊,(長度l1 = 2),而不是像實例一樣需要l1 = ((at1) (at2))
。如果我採取l2
,它包含2個實例,因此,結果將是l3
,其中2個屬性專用於每個屬性,即像l2
這樣的列表,每個屬性有4個實例和2個屬性。問題是,當l1
進入時,它認爲是(at1)
和(at2)
,但沒有((at1)(at2))
我該怎麼辦?感謝幫助!
你想要什麼結果? 'l1'是一個模板,'l2'有兩個模板,所以結果是'2'? – GoZoner
@GoZoner我需要'l1'的長度爲1而不是2,並且'l2'的長度仍然是2.然後我可以將'l1'作爲一個實例,並將'l2'作爲兩個實例像這裏解釋的功能。 –