Sınıfta, kullanılmasına gerek duyulmadığında uzunluk fonksiyonunu kullanmama talimatı verdik. Bir listenin uzunluğunu sayan bir fonksiyonun nasıl yapıldığını biliyorum, fakat bir kondisyonda bir ölçüt olarak veya uzunluk kullanmadan uzunluğun nasıl konulacağını bilmek istiyorum.Uzunluk işlevini kullanmadan listenin uzunluğuyla ilgili koşul/koşul cümleciğinde nasıl bir koşul olabilir?
Ben:
(define (thing ls)
(if (> (length ls) 10)
'p
'q))
(define (thing2 ls)
(cond
[(> (add1 (thing2 (rest ls))) 10) 'p]
[else 'q]))
alt biri bana verir: "gerisini: bekler boş olmayan bir liste; verilen: '()"
Bunu nasıl yapabilirim?
. 'Thing2' 'şey' gibi çalışmanın bir yolu var mı yoksa mümkün değil mi? –
Hiçbir zaman 'ls' değerlendirmeden önce boş olup olmadığını kontrol etmiyorsunuz (ls). (Bir listenin uzunluğuna bağlı olmak için "gerçek dünya" Şeması kodunda çok yaygın değildir. Genellikle kodunuzu, boyutundan ziyade bir listenin yapısı etrafında yazarsınız.) – molbdnilo