模板元程式設計和泛函程式設計都是函式式程式設計嗎?

時間 2021-05-31 20:35:10

1樓:夏梓耀

不會C++模板元,但是你的問題其實相當於在問什麼是functional programming?

FP並沒有明確的定義,只能通過個人(淺顯的)理解來回答了:

函式式程式設計是指一種程式設計正規化,其first-class-value是函式,並有如下properties:

1. 因為函式為first-class-value,所以函式可以當引數和返回值傳遞

(這就產生了lambda表示式/匿名函式)

2. immutable,也可叫purity或 referentially transparent

referentially transparent可由以下兩條規則概括:

An expression e is referentially transparent if for all programs p, every occurrence of e in p can be replaced with the result of evaluating e without changing the result of evaluating p.

A function f is pure if the expression f(x) is referentially transparent for all referentially transparent x.

為什麼說函式式程式設計和命令式程式設計等價, 它們怎樣相互轉化

時空是一體 本體 的統一的,函式式 命令式是一體 本體 的統一的。圖1圖2 上面兩個圖是計算機裡的物件空間和物件的運動軌跡,這兩種有限集合圖可能是同乙個圖。被cpu執行緒驅動的主體物件沿著紅線行走,前乙個圖是主體觀察到的左手邊的世界,後乙個圖是主體觀察到的自己右手邊的世界。一致的世界,所有地方都一致...

為什麼會有函式式程式設計?

Jason Hu 這個問題就是跟問 為什麼會有數學,數學是為了解決什麼問題 是乙個意思。基於lambda calculus的語言比基於TM的語言具有更數學含義。實際上,任一形式邏輯系統都對應一種函式式語言。相反,基於TM的語言自成一系,並無法繼承數學和邏輯系統裡的知識架構。另外,基於TM的程式語義也...

函式式程式設計immutable data是不是本質上效能就差點?

個人認為是的,而且開發起來好像也更加麻煩,如果要更新值,那麼完了還要把原來的 replace 掉,甚至要把所有有關聯的地方都要做一次 update.意義是什麼?就為了乙個所謂的無隱患 copy 如果說的不對,還希望大家指出正確使用方式。 navegador 它不一定就得真正的去 malloc.只要在...