Ruby 匿名函数的使用
分类 程序 于 Nov 19th, 2008
定义:proc1=lambda {|a,b…| 代码块} #Ruby 1.8proc1=->{|a,b…| 代码块} #Ruby 1.9使用:proc1.call(a,b,…)
欢迎光临罗小飞(抱雪)的网上家园
分类 程序 于 Nov 19th, 2008
定义:proc1=lambda {|a,b…| 代码块} #Ruby 1.8proc1=->{|a,b…| 代码块} #Ruby 1.9使用:proc1.call(a,b,…)
分类 程序 于 Oct 28th, 2008
原作者:孟岩 原帖地址:http://blog.csdn.net/myan/archive/2008/10/25/3144661.aspx
现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其 二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。然而这两种方法都有弊病。第二种方法的问题当然很明显,不仅浪费了时间, 偏离了目标,而且学习效率不高。因为没有实际问题驱动的语言学习通常是不牢固不深入的。有的人学着学着成了语言专家,反而忘了自己原本是要解决问题来的。 第一种路子也有问题,在对于这种语言的脾气秉性还没有了解的情况下大刀阔斧地拼凑代码,写出来的东西肯定不入流。说穿新鞋走老路,新瓶装旧酒,那都是小问 题,真正严重的是这样的程序员可以在短时间内堆积大量充满缺陷的垃圾代码。由于通常开发阶段的测试完备程度有限,这些垃圾代码往往能通过这个阶段,从而潜 伏下来,在后期成为整个项目的毒瘤,反反复复让后来的维护者陷入西西弗斯困境。
分类 程序 于 Oct 11th, 2008
通过查看帮助,我发现在SWI-PROLOG中无法定义常量,而有些PROLOG版本是可以的,如以前DOS版本的Turbo PROLOG。但是在书写程序时没有常量就很不方便了,如果使用字面常量,一是程序会使程序很难理解,二是修改的时候很不方便,凡是程序中出现这个常量的地方都要修改,极有可能出现遗漏;如果把常量定义成一元谓词如pi(3.14),那么使用的时候又要先调用一次谓词,如:pi(PI),s is Pi*R*R.显得也很多余。
那么有没有办法在SWI-PROLOG中定义常量呢?当然可以,比如swi-prolog就定义得有符号pi和e,下面就以自定义符号pie=pi+e为例
pie(X):-X is pi+e.
:- arithmetic_function(pie/0).
装入这个文件后,就可以在表达式中使用使用这个常量pie了。
arithmetic_function的功能就是自定义运算符,在定义是需指明自定义函数的个数;在定义谓词时,最后一个个体变元必须是输出参数,用于保存结果。所以在arithmetic_function谓词中指明的参数个数应该比实际的变元个数少1。
分类 程序 于 Jul 21st, 2008
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
1 #include <algorithm>
2 #include <vector>
3 #include <iterator>
4 #include <iostream>
5 using namespace std;
6 /**
7 * 分析:组合无序,所以不妨设降序排列
8 * 第一个解是[n,n-1,...,n-r+1]
9 * 解的条件是位置i上的元素A[i]应该满足
10 * i+A[i]>=r
11 * 回溯法:对最后一个元素减一
12 * 如果满足条件则得到一个新解
13 * 如果不满足,一直向前回溯到该位满足为止
14 * 然后把满足的那位后面的依次等于前面减一
15 * 从而得到一组新解,然后继续
16 * 如果已经回溯到第一位仍不满足
17 * [...]
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
设有m个传教士和m个野人来到河边,打算乘一只船从右岸渡到左岸去。该船最大负载能力为n人,在任何时候,如果野人人数超过传教士人数,那么野人就会把传教士吃掉。他们怎样才能用这条船安全地把所有人都渡过河去呢?
猎人带着一框草莓,一只羊和一条狼要过河。但是只有一条小船。条件如下: * 一次只可以载一样东西。 * 如果让羊和草莓在一起,而猎人不在旁边的话,羊就会把草莓只掉。 * 如果让狼和羊在一起,而猎人不在旁边的话,狼就会把羊吃掉。
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
方法很简单
方法一:
1、如果小桶空,从大桶到小桶
2、如果中桶满,从中桶到大桶
3、如果中桶空间能容纳小桶内的,把小桶全倒中桶
4、从小桶倒,把中桶倒满
方法二:完全类似,不过到油的方向为 大桶–>中桶–>小桶
分类 程序 于 Jun 19th, 2008
function ip2number($ip){
$t=explode(’.',$ip);
$x=0;
for($i=0;$i
分类 程序 于 Jun 19th, 2008
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
虽然 ubuntu 的软件仓库中有swi-prolog 的 deb 包(包括xpce),但是安装后 xpce 不可用,帮助也就成了文本模式,也只能使用 edit 用 vim 模式编辑 , emacs 不可用,上官网可惜没有 deb 的包,但是有 rpm 包,于是用 alien 转换
sudo apt-get install alien
sudo alien pl-xxxx.xxx.pl
然后用 dpkg -i pl-xxxx.xxx.deb 安装即可
分类 程序 于 Jun 17th, 2008
本文由抱雪(hugsnow)原创,转载请注明来源 http://www.luoxf.net/
分析:先把123456789拆分成若干个数,分析可知不能拆分为3位以上的数,这些数可正可负,如果这些数的和是100则打印之,swi-prolog程序如下:
如题:在123456789之间加入任意个加减号使算式结果为100。如:1+2+3-4+5+6+78+9 =1001+2+34-5+67-8+9 =100