2014-08-27 27 views
7

Standart Racket'te son forma ulaşmadan önce bir işlevden nasıl dönebilirim? Bu, başka bir girinti seviyesinden ve yuva oluşturmadan kaçınmak için faydalı olabilir.Racket işlevinden erken geri döner

Ortak Lisp'de, özel bir dönüş türü olan return vardır. Racket'te herhangi bir eşdeğer, en azından geri dönüş için mi? Bir kaçış devamı oluşturmak için let/ec kullanın.

cevap

8

Örnek:/ec tam devam oluşturur çağrı/cc ile daha ucuzdur izin kullanarak

(let/ec return 
    (for ([x 10000]) 
    (when (= x 100) 
     (return x)))) 

.

İlgili konular