count raket/listede kullanılmak üzere true?
işlevini tanımladım. Raket sözleşmeleri hakkında karışıklık
(define (true? expr)
(and (boolean? expr) expr #t))
ben bunu sayısal argümanlar sağlayabilir ve benim işlevi mutlu
#f
döneceğini fark ettim.
> (true? 6)
#f
Yani, ben olmayan boolean argümanlar sözleşme aşarak bir hata döndürür yapmak için bir raket sözleşme kullanarak keşfetmek düşündüm. Yani benim dosyanın tope bu kodu koymak:
(provide (contract-out
[true? (-> boolean? boolean?)]))
Ancak, ben hala raket repl yukarıdaki ile aynı davranışı elde sözleşme ekledikten sonra. Bunun nasıl olabileceğini anlamıyorum. Neyi kaçırıyorum?
Not: Bağlam, bağlamınız için 'değerler'i kullanabilir, çünkü Racket her şeyi # f 'dışında herşeyi true olarak kabul eder. E.g .: '(sayı değerleri '(#f true #f #f #f şeyler #f))' – dyoo