看板 Soft_Job 關於我們 聯絡資訊
來接力這一串好像蠻有趣的 ^^ 我先來補兩個語言.. :p ※ 引述《nodejs (Django)》之銘言: : 大家好 小弟諾德結屎 : 今天不是要跟大家聊結屎 : 而是要聊聊modern c++ : 很多人的印象還停留在遠古時期的c++ : 事實上c++11/14標準發佈之後 已經變得很人性化 : 甚至接近pythonic風格 : 舉幾個網路上的例子 : -------------------- : python: : for i in myList: : print(i) : c++: : for (auto i : myList) : printf("%d", i); Perl: for my $i (@myList) { print $i; } Haskell: forM_ myList $ \i -> print i : --------------------- : python: : myTuple = (1,2,3) : print(myTyple[0]) : c++ : auto myTuple = std::make_tuple(1,2,3); : printf("%d", std::get<0>(myTuple)); Perl: my @myTuple = (1,2,3); print $myTuple[0]; Haskell: let myTuple = (1,2,3) print (myTuple ^. _1) : --------------------- : python: : myList = [1,2,3,4] : myList.append(5) : c++: : auto myList = std::vector<int>{1,2,3,4}; : myList.push_back(5); Perl: my @myList = (1..4); push @myList, 5; Haskell: let myList = fromList [1..4] :: Seq Int myList' = myList |> 5 : --------------------- : python: : def func(argu): : return lambda i: i+argu : c++: : auto func(int argu) : { : return [=](int i){return i+argu;}; : } Perl: sub func { my($argu) = @_; return sub { my($i) = @_; return $i + $argu; }; } Haskell: let func argu = \i -> i + argu (或) let func argu = (+ argu) (或) let func = flip (+) (或) let func argu i = i + argu (或) let func = \argu i -> i + argu (或 如果可以利用 i+argu = argu+i 的話, 可以寫) let func = (+) 大略看看, Haskell 感覺還蠻短的, 可以跟 script 語言作比較 ^^ : 蟒蛇粉有沒覺得很親切呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.121.80.249 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1424023764.A.8CE.html ※ 編輯: CindyLinz (112.121.80.249), 02/16/2015 02:11:55
ahwater01: 天書阿~~ 02/16 11:06
frouscy: 推haskell 02/16 12:01
drm343: 看到這帳號只能推了 02/16 18:08
saladim: 誰阿? 02/16 18:55
suhorng: 你竟然沒有縮起來變 forM_ myList print XDDD 02/18 18:49
suhorng: 想必 mapM_ print myList 看起來會更莫名 02/18 18:50
CindyLinz: XDDD 02/18 22:09