欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

python语言学习笔记 -

更新时间: 2015-05-04 00:00:00 责任编辑: Author_N16

 

Python语言学习笔记

2010-09-23 星期四 寒流+雨

中秋有三天假,感觉老长似的,专门跑出枫林晚借了本《Learning Python》的书,准备假期看看。厄,现在是假期的中间,书确实是看完了,700页左右的英文书,前后花了3个小时左右,当然只是看,没有编码。

发现自己现在看语言方面的书真是太快了,因为语言的东西确实相差无几。特别是语法方面的细节,在看书的时候我几乎就是一扫而过。比如,如何定义一个类,它的if-else,for循环语法,etc。因为这些只是实现上的差异(语法定义上的差异),跟这个语言的功能与编程范式无关——当然,我承认,语法很影响一个人对一门语言的选择与偏爱,它就像人的相貌一样。

但是,一门的语言最重要的差别不在于语法,而在于其它几个重要的方面。这里直接给出vczh同学的结论,因为我同意他的观点:

计算机语言作为一个计算的定义,在我们开发脚本引擎之前需要先进行了解。对于目前流行的若干种语言,我们可以抽象出一组正交属性来描述他们。

一、命令式与描述式

一门语言是命令式或者描述式取决于这门语言是用来告诉计算机怎样做还是做什么的。举个例子,SQL和Prolog是描述式语言,而C++、C#等则是命令式语言。我们在使用SQL的时候告诉服务器的是我们需要满足什么条件的数据项,而不是告诉服务器我们需要通过什么计算来获得自己所需要的数据项。描述式的语言的优点在于其可读性好。C# 3.0为数据查询加入了LINQ让我们可以在C#中书写类似SQL的代码查询数据。

另一个比较模糊的例子则是Haskell。Haskell很难区分是命令式语言还是描述式语言。因为从形式上来说我们告诉编译器的是我们想做什么而不是我们想怎么做,但是Haskell给我们的工具的粒度太细以至于我们为了告诉编译器做什么的同时仍然需要考虑一个问题是如何被解决的。

二、按值计算与惰性计算

惰性计算的语言很少出现以至于可能很多人都不知道"原来语言可以是这个样子的"。惰性计算的精神是不去执行没用的代码。什么是没用的代码呢?只要是这段代码的值不对外界产生任何影响,譬如没有往屏幕、硬盘或者是其他什么地方写点什么数据,就是没有用的。当然,至于这段代码中间做了些什么事情那是不管的。

举一个比较简单的例子,假设现在有如下代码:

function PrintAndReturn(Message,Result)
{
    Print(Message);

    return Result;
}

function DoSomething(BoolA,BoolB)
{
    If(BoolA || BoolB) Print("!");
}

DoSomething(PrintAndReturn("Hello",true),PrintAndReturn("World",false));
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2015-05-04 00:00:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1897730/
本文WWW.DOC100.NET DOC100.NET版权所有。