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. 從工作/子線程訪問主OMNET ++模擬線程
- 4. 在Node.js中模擬線程
- 5. 用Mockito模擬創建線程Runnable
- 6. 如何模擬多參數副作用功能
- 7. Python中的線程與線程模塊
- 8. 使死線程的副本
- 9. 模擬耙子中的螞蟻副本
- 10. 多線程與工作者池模件
- 11. 模擬MS Access中的多線程(VBA)
- 12. 模擬線程上的死鎖
- 13. 模擬Java中的線程故障
- 14. 在C++中模擬Java的線程類
- 15. Java多線程與GUI(交通模擬器的種類)
- 16. 創建和連接線程時的副作用的可見性
- 17. ASP.NET模擬與高程
- 18. Multiton模式使用的副作用
- 19. Supertest路線與模擬服務
- 20. 不在UI線程中觸發PropertyChanged的副作用是什麼?
- 21. 使用Apache IO的多線程副本IO操作Java
- 22. 線程在ASMX Web服務中的副作用
- 23. 製作設備的虛擬副本
- 24. Pytest與模擬/ pytest模擬
- 25. Geofencing示例應用程序不工作與模擬位置
- 26. 副packaged_task和線程在C++
- 27. 應用程序的舊副本出現在Android模擬器上(使用Eclipse IDE)
- 28. Linux線程 - 模擬餐廳表
- 29. perl如何模擬線程行爲
- 30. TensorFlow/Keras多線程模型擬合
模擬副作用的目的是什麼?另外,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