Ree*_*sey 20
"富有表现力"的语言是一种允许您在代码中轻松表达逻辑概念的语言.
人们经常将Perl称为表达式,因为它允许您使用许多不同的方法来表达特定的概念,因此在这方面它非常灵活.
(关于这是否是好事,有很多争论,尽管...)
zou*_*oul 15
在这种情况下,我认为这意味着你可以做很多事情,而无需编写太多代码.
例如单行:
$ echo Foo | perl -pe "s/o/e/g"
Fee
Run Code Online (Sandbox Code Playgroud)
或者驼鹿:
# A simple Point class with x and y coordinates.
package Point;
use Moose;
has [qw/x y/] => (is => 'ro', isa => 'Num', default => 0);
1;
Run Code Online (Sandbox Code Playgroud)
或者上下文的概念:
my @array = qw(foo bar baz);
my $count = @array; # three
Run Code Online (Sandbox Code Playgroud)
@sorted = map { $_->[0] }
sort { $a->[1] cmp $b->[1] }
map { [$_, foo($_)] }
@unsorted;
Run Code Online (Sandbox Code Playgroud)
这很好,因为你可以按照自己想要的方式完成任务.(如果你觉得想要解决这个问题,你可以.)另一方面它有时很糟糕,因为你可以按照自己想要的方式完成任务:)
hob*_*bbs 10
Perl语法背后的想法不仅是TMTOWTDI,而且是模仿自然语言的尝试(尽可能保持计算机语言的精确性).目标是Perl应该是一种能够流利的语言,就像母语使用者一样,而不是像使用短语的游客.
编写代码的可用方法之一应该与您对问题的思考方式类似.当编辑器中的代码形状与头脑中问题的形状相匹配时,您可以更快地进入运行和可测试代码的阶段,因为没有意识到的步骤在您的意思和内容之间进行转换电脑想听.这就是为什么人们会经常告诉你Perl非常适合原型设计.
就是这个,而不是简洁或TMTOWTDI,这真正意味着Perl的"表现力".自然语言提供代词; Perl提供$_.自然语言提供省略号; Perl为内置提供了默认参数.自然语言提供了许多不同的方式来表达任何给定的陈述,具有不同的含义,不同的模式和语音寄存器; Perl与代码完全相同.一个母语为英语的人通常会选择最简洁的方式来获得所有可用的点,但他没有必要 - 他可以选择使用更多的单词来清晰,甚至要有诗意.在Perl中它是一样的.不科学地说,目标是你应该能够"说出你的意思".
关于自然语言对Perl的影响的一些想法:Perl中的自然语言原则.
让我们看看,Merriam-Webster(sv,' expressive ')提供了这样的:
3:有效传达意义或感受'表达沉默','富有表现力的线条画'
我认为实际上Perl适合T,因为其他的回答者说的是(1)有多种方法可以做事(因此Perl有很多方法可以让程序员表达她的想法)和(2)Perl经常相对紧凑(所以你可以用一点点表达很多).
但我想补充一点,Perl对DWIM的普遍倾向(尽我所能)也是它的重要组成部分.