不定式(一) 函数不定式
来源:互联网 发布:再度重相逢网络歌手 编辑:程序博客网 时间:2024/04/20 13:37
且以打印自然数序列为例来说明函数不定式,
列举1000以内的斐波那契序列并打印出来。
//方式一:直接列举并打印
public void fibo(){
int lo =1, hi =1;
while(hi<1000){
System.out.print(hi);
hi = lo + hi;
lo = hi – lo;
}
}
public shared(String[] args){
fibo();
}
//方式二:列举与打印分离
public void fibo( void[int] handler){
int lo =1, hi =1;
while(hi<50){
handler(hi);
hi = lo + hi;
lo = hi – lo;
}
}
public shared(String[] args){
fibo( x ? System.out.print(x) );
}
方式一是传统中最常见的做法,方式二中使用了Yes语言独特的语法——函数不定式,它们都能完成同样的目标,但当需求发生变化,如 “再打印这一序列中的偶数”,二者的优劣就显示出来了,按方式一则需重写一个fibo函数,但按方式二,仅需在主函数中增加一句: fibo( x? System.out.print(x%2==0? x:"")); 这与时下流行的IOC思想一致,能最大限度地实现代码重用。
那么究竟何为“函数不定式”呢?Yes语言规范中,“不定式”是指“对象的具体类型对程序员而言是不确定的,编译器通过上下文分析自动将该对象转为程序员期待的类型”。而“函数不定式”是Yes语言不定式规范中的一种。
以 x?System.out.print(x) 为例,Yes语言的编译器将其编译为一个类,这个类型对程序员而言是不确定的,事实上他根本不在意这个类型,他关注的只是这一份代码是否能完成它期待的功能(最终编译器将代码编译到该类中一个方法中)。在这里程序员仅关注这个方法的签名(不含方法名)是否能满足需求——即"void[int]"。
- 不定式(一) 函数不定式
- 不定式
- 第二十三章 不定式
- 动词不定式的时态
- 7. 动词不定式
- 不定式作主语
- 疑问词+不定式(短语)
- 形容词性 不定式
- 英语之不定式
- 主谓宾定状补,名词代词不定式
- 不带to的动词不定式
- 动名词/不定式的特殊句型 English
- 不定式方程求整数解(换分币)
- 非谓语动词---不定式作名词
- 不定式和分词作状语的区别
- 第二十五章 不定式结构与动名词结构
- “特殊疑问词+动词不定式”的用法归纳
- 巧记作宾语补足语的省略to 的动词不定式
- 2007中国软件质量年会门票
- C#通过WMI设置NTFS目录共享和目录安全
- 利用javascript判断浏览器是否已经安装ActiveX控件和是否禁止运行ActiveX控件
- 我的第一篇文章,纪念一下!
- 年轻人买鞋
- 不定式(一) 函数不定式
- 设计模式概述
- 操作系统 编译器 解释器
- UNICODE 编程注意
- asd
- PHP查找字符串的方法
- 无驱动执行Ring0代码 (转)
- 高压包包打天下,遥控器遥控东西--安徽天长秦栏镇
- Windows Server 2008 十项重要新技术