身份識別功能的用途是什麼?它只是返回相同的值。因此,不要把(identity x)
,而是簡單地把x
?有人能舉出一些在球拍/方案中使用身份識別功能的例子嗎?有這些文檔頁面上沒有例子:https://docs.racket-lang.org/htdp-langs/beginner.html#%28def.htdp-beginner.%28%28lib._lang%2Fhtdp-beginner..rkt%29.identity%29%29和https://docs.racket-lang.org/reference/procedures.html?q=identity#%28def.%28%28lib._racket%2Ffunction..rkt%29._identity%29%29球拍中的身份識別功能有什麼用?
回答
的identity
功能是作爲參數傳遞給某些高階函數(功能,這取函數作爲參數)時的功能執行特定排序映射由定製最有用它的論點,而你希望通過不變的方式來傳遞價值。 †方案
一個非常常見的成語/球拍是用(filter identity ...)
從列表中刪除所有#f
值:
> (filter identity '(1 2 #f 4))
'(1 2 4)
這工作,因爲filter
應用所提供的功能,每一個列表的元素,然後丟棄導致#f
的值。通過使用identity
,值本身被檢查。在這個意義上,identity
是功能性的「禁用」。
有時候你可以看到這個成語拼寫(filter values ...)
而不是(filter identity ...)
因爲values
發生在一個參數設置成身份的功能,它來自racket/base
而不是racket/function
。不過,我更喜歡明確使用identity
的版本,因爲我認爲它會更清楚一點。
†身份功能的這一描述來自this nice answer爲Haskell的等效問題。
有無論如何傳遞#f而不是標識功能? – X10D
@ X10D不,沒有。你爲什麼想這麼做? –
- 1. 是否有scala身份識別功能?
- 2. python中的身份識別功能
- 3. 方案中的身份識別功能
- 4. Rust中是否有內建的身份識別功能?
- 5. 球拍隨機功能
- 6. 球拍摺疊功能
- 7. 球拍 - 匹配功能
- 8. 球拍/多個功能
- 9. 球拍複印機功能
- 10. 什麼是球拍
- 11. 打字球拍中的功能
- 12. 方案:球拍中的循環功能
- 13. 主鍵和身份有什麼區別?
- 14. 左值參考在通過身份識別功能後失效
- 15. Guice-Provider如何實現身份識別功能?
- 16. 識別客戶身份
- 17. 球拍什麼程序
- 18. 在IIS中識別成功的身份驗證事件
- 19. 在計劃或球拍何時使用功能和什麼時候使用宏
- 20. 方案/球拍:可擴展功能
- 21. 球拍計劃 - 會員?功能難題
- 22. 識別類別本身後使用類功能
- 23. Web性能測試:SignalR - 無法識別的用戶身份
- 24. Tweeter中的簡單和OAuth身份驗證有什麼區別?
- 25. OOP中的身份和平等有什麼區別?
- 26. 如何在不同的環境中實施「全球身份識別系統」?
- 27. 在球拍/方案中考慮具有副作用的功能的慣例是什麼?
- 28. .NET功能和C#功能有什麼區別? (請用例子)
- 29. 「功能」和「功能!」有什麼區別?在VIM中?
- 30. 使用帶有身份識別核心的EFCore
關於在其他語言中使用身份函數有幾個相關的問題,這個想法可能是相同的,請參閱http://stackoverflow.com/questions/3136338/uses-for-haskell-id-function或http://stackoverflow.com/questions/15421502/is-there-any-good-example-of-use-cases-for-angular-identity?noredirect=1&lq=1 – Thilo
同樣可以問關於常量函數;)。 – Alexey