→ x000032001: 2 你並沒有註冊他 只是傳進去 1很奇怪 04/22 15:24
推 cuteSquirrel: Math(add)是把add這隻function的以function pointer 04/22 15:45
→ cuteSquirrel: 的形式傳入Math的參數列。讓裡面的Math呼叫可以用fu 04/22 15:45
→ cuteSquirrel: nction pointer來呼叫add, 做兩數相加的加法運算。 04/22 15:45
→ cuteSquirrel: Function pointer 提供了一種彈性的函數呼叫方式。 04/22 15:50
→ cuteSquirrel: 以原po的例子來說,可以再實作兩個數學函數,mul做 04/22 15:50
→ cuteSquirrel: 乘法,div做除法。擴展成一個小型的四則運算程式。 04/22 15:50
推 cuteSquirrel: Callback function在原po的例子裡是add和sub. add和 04/22 15:56
→ cuteSquirrel: sub這兩個以function pointer傳入Math(), 在Math() 04/22 15:56
→ cuteSquirrel: 裡面被呼叫。 04/22 15:56
推 cuteSquirrel: Ans2比較貼近原po的例子。
謝謝兩位 我只是好奇我告訴別人說 add & sub 是callback func
這樣我同事們就知道這是要被當作func pointer傳入其他func作為引數嗎?
因為連我自己都無法定義清楚了 冏
※ 編輯: EngRookie (150.117.206.89), 04/22/2017 16:22:22
推 kyuudonut: 我覺得改一下函數命名會比較好閱讀一點 04/22 19:17
推 s89227: 在其他語言好像叫delegate? 04/22 22:47
推 cuteSquirrel: 推。像是c#的delegate 04/22 23:20
→ uranusjr: 不過 delegate 在某些語境下又會有完全不同的意思 XD 04/22 23:31
推 steve1012: 應該知道吧 04/22 23:45
推 loveflames: C++講delegate,我第一個想到的是delegating ctor 04/23 08:26
推 CoNsTaR: higher-order function 04/24 19:18
→ Chikei: 不過用higher-order有不小的機會會被問這是啥意思...XD 04/25 01:17
推 Neisseria: higher-order function +1 04/25 09:40
→ ah7675: 每次都要搞名詞解釋 真的很煩 04/26 00:12
→ ah7675: 是不是都用名詞當鬥爭工具? 講贏定義的人是老大? 04/26 00:12
推 CoNsTaR: 樓上 這裡的老大只有一個喔 請去拜見水晶球神 04/26 05:38
推 CoNsTaR: 不過這篇本來就是在問名詞,給名詞解釋問題在哪? 04/26 05:40
推 ronin728: 只傳函數進去不算callback,必須是要是下個流程才算(CPS 04/26 11:29
→ ronin728: 也就說傳進來的函數也必定只能以tail call的方式使用 04/26 11:39
推 Killercat: 你可以查一下學一下functor, 近代的c++多半用這結構 04/26 22:37
→ Killercat: 體來表示一個function 而不是把point of function傳入 04/26 22:37
→ Killercat: 優點很多,包括了簡易的型別安全以及易用性 可以學一下 04/26 22:39
→ Killercat: C++11以前須用boost::function,11後有std::function 04/26 22:41
推 Sidney0503: 名詞是設計者的問題 template在c++ java不一樣 04/27 07:23
→ Sidney0503: apply bind在c++ js不一樣 04/27 07:23
→ Sidney0503: for each拿到index還是內容物 在py js不一樣 04/27 07:27
→ Sidney0503: 不過打架久了大家也漸漸知道 先說是哪家語言的定義 04/27 07:29
→ Sidney0503: 如果你覺得煩 那就可以加入語言開發社群或委員 04/27 07:30
→ Sidney0503: 出一份力改善這種到處不一樣的狀況 04/27 07:31
→ Chikei: 名詞解釋有啥好煩的,難道要吵一架吵完之後才發現兩個人跟 04/27 11:25
→ Chikei: 本是在講不同的東西只是剛好共用名詞有比較好嗎XDD 04/27 11:26
推 CoNsTaR: 通常在討論語言特性的時候會用higher-order function 04/27 12:30
→ CoNsTaR: 用 category 討論程式實作會用 functor 這個詞 04/27 12:30
→ CoNsTaR: 雖然這兩個詞在 theorical computer science 裡實際上指 04/27 12:30
→ CoNsTaR: 的是同一個東西,但是在不同情境下我們會用不同的詞來討 04/27 12:30
→ CoNsTaR: 論 04/27 12:30
→ CoNsTaR: 另外, functor 還分 contravariant、 convariant 兩種, 04/27 12:30
→ CoNsTaR: 但 higher-order function 就沒討論這麼多了 04/27 12:30
→ CoNsTaR: 不過 functor 在很多語言裡已經有自己的意思了,和 TSC 04/27 12:30
→ CoNsTaR: 裡的定義不同 04/27 12:30
推 CoNsTaR: functor 雖然也可以傳入、回傳函數,但是專指這樣的函數 04/27 12:45
→ CoNsTaR: 會用 higher-order function 來稱呼 04/27 12:45