[問題] Lambda的higer order function
最近在看Lambda
有一部份看了很久還是不懂,不知道是他寫太簡捷還是我哪個點沒有抓到
http://msdn.microsoft.com/en-us/library/dd293599.aspx
文件在上面 在higher order function的部份
auto g = [](int x) -> function<int (int)>
{ return [=](int y) { return x + y; }; };
首先就是上面這邊,不懂為什麼要將int x轉成 function type
這樣做的用意到底在哪?
接著
auto h = [](const function<int (int)>& f, int z)
{ return f(z) + 1; };
之後 h(g(7),8) output 會是16
麻煩大大幫解惑一下 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.95.34
推
07/12 02:43, , 1F
07/12 02:43, 1F
→
07/12 02:43, , 2F
07/12 02:43, 2F
→
07/12 02:49, , 3F
07/12 02:49, 3F
提醒感謝,我的問題主要是在 g 的地方,就是將ouput type 轉成 function< >後
他要如何去接住 int x的值呢? 我剛有試了一下 假設將程式改成
function< int (int , int) >
那前面的 int x 要如何修改才能正確接住值呢?
就是 h(g(7,8),9) or h(g(7),8,9) 這樣??
這部分我真的不太了解
謝謝
→
07/12 02:52, , 4F
07/12 02:52, 4F
→
07/12 07:13, , 5F
07/12 07:13, 5F
→
07/12 07:16, , 6F
07/12 07:16, 6F
推
07/12 08:11, , 7F
07/12 08:11, 7F
→
07/12 08:23, , 8F
07/12 08:23, 8F
→
07/12 09:10, , 9F
07/12 09:10, 9F
→
07/12 09:12, , 10F
07/12 09:12, 10F
※ 編輯: gogoqaz 來自: 118.163.84.235 (07/12 12:43)
推
07/12 13:53, , 11F
07/12 13:53, 11F
推
07/12 13:55, , 12F
07/12 13:55, 12F
推
07/12 14:29, , 13F
07/12 14:29, 13F
→
07/12 14:31, , 14F
07/12 14:31, 14F
→
07/12 18:47, , 15F
07/12 18:47, 15F
→
07/12 19:01, , 16F
07/12 19:01, 16F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):