我已经看过很多(代码高尔夫)Perl程序,即使我看不懂它们(不知道Perl)我想知道你怎么能设法得到这么少的代码去做20一些其他编程语言中的行.
我想学习如何编写功能强大而又简短的程序,就像你从代码高尔夫挑战中所知道的那样.什么是最好的开始?我不想学习"干净"Perl - 我想编写脚本,即使我在一周后不再理解.
如果还有其他编程语言,我可以写更短的代码,请告诉我.
Mic*_*man 32
Perl有很多因素可以使代码打高尔夫球:
$_如果没有指定参数,大多数函数都会起作用.(一些行为@_.)split带有多个参数(例如)的函数通常具有默认值,可以省略某些参数甚至所有参数.<>.map和grep此外,没有限制(默认为关闭):
undef成为0或''取决于上下文.既然这已经不在了,请让我在一点上非常清楚:
高尔夫是一场比赛.
很高兴渴望达到perl-fu的水平,让你擅长它,但以$DIETY不高尔夫真实代码的名义.首先,这是浪费时间的可怕浪费.你可能花一个小时试图修剪几个角色.高尔夫代码是脆弱的:它几乎总是做出重大假设,并且轻率地忽略错误检查.真正的代码不能这么粗心.最后,作为程序员的目标应该是编写清晰,健壮且可维护的代码.在编程中有一种说法:总是编写你的代码,好像维护它的人是一个知道你住在哪里的暴力反社会者.
所以,一定要开始打高尔夫球; 但是要意识到它只是在玩耍并对其进行处理.
bri*_*foy 10
大多数人都忽视了Perl的语法和默认运算符.Perl主要是一种"DWIM"(我的意思是)语言.其中一个主要的设计目标是"让普通事物变得简单,让事情变得更加困难".
作为其中的一部分,Perl设计师谈论了霍夫曼语法的编码,并思考人们需要做什么,而不仅仅是给他们低级原语.你经常做的事情应该是最少量的打字,功能应该像最常见的行为.这节省了相当多的工作量.
例如,拆分有许多默认值,因为有一些用例可以使用常见情况.没有参数,就split打破了$_空白,因为这是一种非常常见的用法.
my @bits = split;
Run Code Online (Sandbox Code Playgroud)
有点不太常见,但仍然常见的情况是分解$_其他东西,所以有一个稍长的版本:
my @bits = split /:/;
Run Code Online (Sandbox Code Playgroud)
而且,如果您想明确说明数据源,您也可以指定变量:
my @bits = split /:/, $line;
Run Code Online (Sandbox Code Playgroud)
想象一下,你通常会处理生活.如果你有一个经常执行的常见任务,比如与你的调酒师交谈,那么你可以通过简写来解决这个问题:
通常
如果你需要做一些稍微不同的事情,你可以稍微扩展一下:
通常,但洋葱
但你总能记下具体细节
肮脏的孟买蓝宝石马提尼酒动摇不动
在下次浏览网站时考虑一下.您执行常规操作需要多少次点击?为什么有些网站易于使用而有些网站却没有?大多数时候,好的网站要求你做最少的工作来做常见的事情.与我的银行不同,它需要不少于13次点击才能进行信用卡账单支付.给他们钱应该很容易.:)
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |