作者CindyLinz (Cindy Wang)
看板Soft_Job
標題Re: [請益] 如何學習C/C++並能使之成為應職技能?
時間Mon Feb 16 02:09:21 2015
來接力這一串好像蠻有趣的 ^^
我先來補兩個語言.. :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