2011-09-16 28 views

cevap

1

, o zaman böyle bir şey yapabileceğini:

(defmacro run (comp time-limit) 
    `(amb comp 
     (progn (delay ,time-limit) 
       nil))) 

McCarthy amb operatör ile bu karıştırmamak için dikkatli olun. amb, bağımsız değişkenlerdeki bağımsız değişkenlerini değerlendirmeli ve önce hangisi biteceğini seçmelidir. Örneğin, Haskell'de, Data.Unamb'da açıklanmıştır.

+1

Teşekkürler. Aslında bir amb uygulamamın umuyordum :) Veya mevcut bir kütüphaneye bir işaretçi. – matejch

1

Hesaplama için bir iş parçacığı oluşturarak ve zamanlayıcı tarafından geri dönmezse, iş parçacığına dokunarak ve geri döndürerek, bordeaux iş parçacıklarını kullanmanızı öneririm.

1

istediğini yapmak gibi görünüyor vahşi bu lisp kodu dışarı Bulunan:

http://www.eurogaran.com/downloads/lisp/limitools/limitime.lsp

Ben başlattı 'Clozure Common Lisp Versiyon 1.7-r14925M (DarwinX8664)', yani içinde lisp kodu yapıştırılan dinleyici içine sitesi (tüm derlenmiş) ve bu koştum:

? (with-max-time 1 (print 5)) 

5 
5 
? (with-max-time 1 (sleep 2) (print 5)) 
? (quit) 

Umarım bu kendi sunmayı zorunda size yardımcı olacaktır.