これはばかげた質問かもしれませんし、少なくともアクター モデルに関する誤った仮定を含む質問かもしれませんが、誰かが私を教えてくれるかもしれません。cl-actorsサンプル ドキュメントにあるものと同様のサンプル アクターをセットアップするとします。
cl-user> (ql:quickload :cl-actors)
:CL-ACTORS
cl-user> (use-package :cl-actors)
T
cl-user> (defactor echo (stream) (message)
(format stream "~a~%" message)
next)
ECHO
cl-user> (defparameter e (echo :stream *standard-output*))
E
cl-user> (send e "Test message")
Test Message
; No value
; No value
の代わりにあるのはなぜNIL
ですか?アクタースレッドを強制終了せずに戻り値を取得する方法はあり(bt:join-thread (cl-actors::get-thread e))
ますか? 私は特に戻り値を取得することを目指しており、トリックをしwith-output-to-string
たり、同様のことをしたりしません。
私が解決しようとしているより一般的な問題は、アクターからcl-who
クライアント側のページに情報を出力しようとすることです。の線に沿った何か
(with-html-output (s)
(:h1 (send e "Test message")))
send
何も返さない場合、明らかに機能しません。特定の質問が実際にばかげていることが判明した場合は、より一般的な問題へのポインタを歓迎します。