亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: 蘭花仙子
打印 上一主題 下一主題

較之Perl - Python的語法真奇怪 [復制鏈接]

論壇徽章:
0
21 [報告]
發(fā)表于 2007-01-22 10:31 |只看該作者
lambda只是簡單的返回一個表達式,連print語句都不能帶,是遠沒有closure那么強大的.

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
22 [報告]
發(fā)表于 2007-01-22 10:36 |只看該作者
原帖由 蘭花仙子 于 2007-1-22 10:31 發(fā)表
lambda只是簡單的返回一個表達式,連print語句都不能帶,是遠沒有closure那么強大的.

的確是這樣。
不過 Python 近年來一直都在發(fā)展,未來也許會提供更多的支持。
不過到時候也許 Perl6 早就出來了。

Python 現(xiàn)在正在經歷 Perl 曾經經歷過的動蕩。
這對于一個語言來說是致命傷。

論壇徽章:
0
23 [報告]
發(fā)表于 2007-01-22 11:31 |只看該作者
原帖由 蘭花仙子 于 2007-1-22 10:31 發(fā)表
lambda只是簡單的返回一個表達式,連print語句都不能帶,是遠沒有closure那么強大的.

初學Perl,沒研究過closure。在Scheme中l(wèi)ambda是可以返回一個完整的函數(shù)的。
closure中shift指令是否表示將參數(shù)偏移?
下面這個程序如果用閉報應該如何是實現(xiàn)?

#include <iostream>
using namespace std;
class PAIR{
private:
  int x, y;
public:
  PAIR(int a,int b)
  {
    x = a;
    y = b;
  }
  int get_x(void)
  {
    return x;
  }
  int get_y(void)
  {
    return y;
  }
};

PAIR cons(int x, int y)
{
  PAIR pair=PAIR(x,y);
  return pair;
}
int car(PAIR pair)
{
  return pair.get_x();
}
int cdr(PAIR pair)
{
  return pair.get_y();
}

int main(void)
{
  PAIR pair = cons(1,2);
  cout<<"car:"<<car(pair)<<"\n";
  cout<<"cdr:"<<cdr(pair)<<"\n";
  return 1;
}

論壇徽章:
0
24 [報告]
發(fā)表于 2007-01-22 11:33 |只看該作者
原帖由 awake 于 2007-1-21 20:48 發(fā)表


或許
  1. print "true" if word in str
復制代碼
是最方便的。

在python2.5里有一個類似的單行if...else...

論壇徽章:
0
25 [報告]
發(fā)表于 2007-01-22 11:37 |只看該作者
原帖由 Rob 于 2007-1-21 17:14 發(fā)表
正因Perl內置了正則支持,所以少了很多字串操作函數(shù)吧。

是優(yōu)點還是缺點?


少了啥?

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
26 [報告]
發(fā)表于 2007-01-22 11:44 |只看該作者
原帖由 orangetouch 于 2007-1-22 11:37 發(fā)表


少了啥?

少了 if $word in $str
但是可以用 if $str =~ m'$word' 代替……

論壇徽章:
0
27 [報告]
發(fā)表于 2007-01-22 11:51 |只看該作者
原帖由 flw 于 2007-1-22 11:44 發(fā)表

少了 if $word in $str
但是可以用 if $str =~ m'$word' 代替……


哪個語言有這種用法?

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
28 [報告]
發(fā)表于 2007-01-22 11:52 |只看該作者
原帖由 netawater 于 2007-1-22 11:31 發(fā)表

初學Perl,沒研究過closure。在Scheme中l(wèi)ambda是可以返回一個完整的函數(shù)的。
closure中shift指令是否表示將參數(shù)偏移?
下面這個程序如果用閉報應該如何是實現(xiàn)?

[quote]int main(void)
{
  PAIR pair = cons(1,2);
  cout<<"car:"<<car(pair)<<"\n";
  cout<<"cdr:"<<cdr(pair)<<"\n";
  return 1;
}
[/quote]
像這種帶參數(shù)的需求,實在沒必要用閉包,用普通的函數(shù)就可以了。
  1. sub cons($$) {
  2.     my ($x, $y) = @_;
  3.     return [$x, $y];
  4. }

  5. sub car {
  6.     my $pair = shift;
  7.     return $pair->[0];
  8. }

  9. sub cdr {
  10.     my $pair = shift;
  11.     return $pair->[1];
  12. }

  13. # main:
  14. my $pair = cons(1,2);
  15. print car($pair), "\n";
  16. print cdr($pair), "\n";
復制代碼

如果只是為了展示閉包的用法而一定要用閉包,那么可以這么寫:
  1. sub cons($$) {
  2.     my ($x, $y) = @_;
  3.     return (sub {return $x}, sub {return $y});
  4. }

  5. # main:
  6. my ($car, $cdr) = cons(1,2);
  7. print $car->(), "\n";
  8. print $cdr->(), "\n";
復制代碼

論壇徽章:
0
29 [報告]
發(fā)表于 2007-01-22 11:54 |只看該作者
原帖由 orangetouch 于 2007-1-22 11:51 發(fā)表


哪個語言有這種用法?

perl有

論壇徽章:
0
30 [報告]
發(fā)表于 2007-01-22 12:03 |只看該作者
原帖由 alexru 于 2007-1-22 11:54 發(fā)表

perl有


Rob:正因Perl內置了正則支持,所以少了很多字串操作函數(shù)吧。是優(yōu)點還是缺點?
orangetouch:少了啥?
flw:少了 if $word in $str 但是可以用 if $str =~ m'$word' 代替……
orangetouch:哪個語言有這種用法?
alexru:perl有

有的話咋用啊?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP