3
A
回答
6
我遇到的問題是如何實現get和set消息處理程序而不分配?當然,處理程序必須更改一個值,以便線程的內部循環可以記錄一個新的值?
是的你是對的。 Erik假設每個線程都有自己的消息隊列。發送消息Value(n)
明顯改變了消息隊列的狀態。他讓這聽起來更神祕:他只是交換另一種形式的可變狀態的任務。他利用語言的「先決條件」特徵使其在語法上變得乾淨。
正如他所說,你可以使用傳統的IO(他提到控制檯IO)做同樣的事情。假設Value(n)
將n
寫入文件,前提條件Value(T t)
檢查當前的狀態值是否爲t
(在文件中)。 Voilà,沒有任務的可變狀態(但現在包含IO!)。
+1
我發現有趣的是,Eric從未在視頻中使用過「可變」或「不可變」等詞語,甚至沒有使用過。在描述功能純度時,他還設法避免了「封裝」這個詞,聲稱你只能是純粹或不純的,而不是兩者。是的,他確實比它更神祕。也許這是因爲他是一名學者。 – 2010-07-11 16:42:33
相關問題
- 1. 擬合曲線與模型方程numpy
- 2. 模擬與線列車
- 3. 模擬耙子中的螞蟻副本
- 4. 多線程與工作者池模件
- 5. 在C++中模擬Java的線程類
- 6. Java多線程與GUI(交通模擬器的種類)
- 7. 創建和連接線程時的副作用的可見性
- 8. ASP.NET模擬與高程
- 9. Supertest路線與模擬服務
- 10. 不在UI線程中觸發PropertyChanged的副作用是什麼?
- 11. 線程在ASMX Web服務中的副作用
- 12. 使用Apache IO的多線程副本IO操作Java
- 13. 製作設備的虛擬副本
- 14. Pytest與模擬/ pytest模擬
- 15. 應用程序的舊副本出現在Android模擬器上(使用Eclipse IDE)
- 16. Firefox與虛擬主機離線工作
- 17. 與Python模擬按鍵動作的Linux
- 18. Linux線程 - 模擬餐廳表
- 19. Perl單線程模擬awk腳本
- 20. TensorFlow/Keras多線程模型擬合
- 21. 在iPhone模擬器中打印我的應用程序的副本?
- 22. C++中的虛擬公共類的副作用
- 23. LINQ的副作用
- 24. Fluxible的副作用?
- 25. 用於電梯模擬的蟒蛇線程
- 26. 與PHP相比,Python進程,線程與虛擬主機相比
- 27. 如何禁止製作線程陣列的副本
- 28. BX副作用?
- 29. 副作用
- 30. innerHTML副作用?
模擬副作用的目的是什麼?另外,C-Omega是微軟研究院的一個項目,現在已經不復存在。來自C-Omega的一些想法進入C#,其中一些沒有。 – 2010-07-10 17:48:05
如果我正確理解「模擬副作用」,Haskell使用Monads來實現這一點,特別是IO Monad。 IO Monad允許純函數式編程,同時仍允許與外部世界進行交互(被認爲是一種副作用)。 – 2010-07-10 17:50:22
@羅伯特 - 目的只是爲了證明在你的語言中沒有任何副作用,一旦你引入線程,你就沒有好處。 我的問題背後沒有實際的理由 - 這更多的是一個理論問題。 – 2010-07-10 17:58:47