Benim aklımda olan şey şu şekildedir: time-limit
CLISP'de zaman sınırlı bir yürütme mekanizması nasıl uygulanır?
(run (long-calculation vars) time-limit)
(long-calculation vars)
veya nil
sonucunu döndürür.
Benim aklımda olan şey şu şekildedir: time-limit
CLISP'de zaman sınırlı bir yürütme mekanizması nasıl uygulanır?
(run (long-calculation vars) time-limit)
(long-calculation vars)
veya nil
sonucunu döndürür.
, 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.
Teşekkürler. Aslında bir amb uygulamamın umuyordum :) Veya mevcut bir kütüphaneye bir işaretçi. – matejch
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.
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.
Bu, uygulamaya bağımlıdır. Hangi Lisp uygulamasını kullanıyorsunuz? –