查看完整版本: 如何用python或php生成費式數列?用類似表示的概念!!
頁: [1]

CodeMonk 發表於 2017-1-7 03:59 PM

如何用python或php生成費式數列?用類似表示的概念!!

本帖最後由 CodeMonk 於 2017-1-7 08:52 PM 編輯

譬如說我用perl來寫
use v6;

my @fbs = (0, 1, *+* ... * );
say @fbs[$_] for 1..10;

輸出
0
1
1
2
3
5
8
13
21
34

對應的php或python的東西是甚麼??

或者用map 來寫但感覺起來很難理解!
use v6;

my @a = 0, 1, 1, 2;
(3..10).map: {@a[ $_ ] = @a[ $_ -1 ] + @a[ $_ -2 ]};
@a.say;
<div></div>

CoNsTaRwU 發表於 2017-1-10 07:28 PM

你的意思是 List comprehensions ?
我不懂perl, python 和 php 但是或許你可以看看這個
http:// www.
secnetix.de/olli/Python/list_comprehensions.hawk

CodeMonk 發表於 2017-1-10 09:00 PM

本帖最後由 CodeMonk 於 2017-1-10 09:48 PM 編輯

CoNsTaRwU 發表於 2017-1-10 07:28 PM static/image/common/back.gif
你的意思是 List comprehensions ?
我不懂perl, python 和 php 但是或許你可以看看這個
http:// www.
是,原來再python叫作List comprehensions(話說我還不知道在perl裏面叫作什麼),但是python好像(我沒找到)what ever 或是ruby的infinity  這一類build in Object,所以感覺起來python的range和php一樣,要當下決定長度,像是再你給的網址上看到的列印出範圍的質數,是住樣子寫:
>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

CoNsTaRwU 發表於 2017-1-11 04:24 PM

CodeMonk 發表於 2017-1-10 09:00 PM static/image/common/back.gif
是,原來再python叫作List comprehensions(話說我還不知道在perl裏面叫作什麼),但是python好像(我沒找 ...

你指的應該是 Perl 的 whatever ?剛剛查了一下


在物件導向中那個叫做 "the root of class hierarchy"
在函數式語言中那個叫做 "⊤" (Top, 相對於 Buttom ⊥)
當然,這兩種說法並不衝突


Python 的 Type system 是 dynamic typing,也是 duck typing,所以不需要類似 Top 的東西
(我不懂 Python,我只是查了一下 Python 的 Type system 之後下結論)


關於 Infinity,我也不懂 Ruby orz...
不過也是查了一下,那對應的是函數式中的 "Fix" 類型
所以我再找找看python3有沒有決定list長什麼樣但不決定長度的方法你想要的是 Lazy,可以查查 "Lazy List"

譬如說我可以用 array_filter 找到再1 到 100之間的質數,但是我找不到從1開始到第100個質數什麼!!你想要的是 Lazy


補充內容 (2017-1-11 04:43 PM):
你用的這些功能其實是從函數式語言來的,建議可以玩玩看 Haskell...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]