J语言的金字塔
来源:互联网 发布:链家要自己买端口么 编辑:程序博客网 时间:2024/05/01 08:45
http://projecteuler.net/ 是个好玩的地方,你可以当是做脑力体操,同时又可以见识很多牛人的编程技术。
区区解了30多道题,1/3用erlang,1/4用python,还有剩下的是用J解决的。。
最初到Project Euler去玩,纯粹是想练习一下erlang编程的。。其中有些题目,因为急躁,又想不出很方便的erlang解法,就祭起python来搞定了 (啊你问为什么我不用perl或者C++?因为区区最近项目中只使用了Python和Java啦,而你知道的,一般情况下,区区都只开emacs不用eclipse的)。。
由于使用的是emacs,可以很轻松地同时使用多个动态语言,所以后来很轻松地就搭起了J语言的练习buffer了。
到目前为此,有三个编程语言让在下非常头痛过:
C ---- 中学时学这种东西没人指导,当然会头痛
Lisp ---- 或者说是scheme吧,老实说,虽然痛,但也挺有快感的说
J ---- 这是APL的主要后继语言之一。看J手册,她说要用类似人类语言的方式来学习。这类事情区区可是有经验的,那些越说自己像人类语言的语言啊,陷阱就越是多(Lisp/Perl/Python/Ruby/TCL都在此列)。
忘了说明自己学J语言的原因了,故事是这样的:
区区尝试用erlang/python好容易写了十来行或者几十行的程序把一个问题解对了,解决了。再到那一题的论坛里看时,那些用APL/J/K的小样(好啦,牛人啦),就一下子丢个十几个字符或者几十个字符的程序也把问题解了,末了还不忘说一句:“诶,不好意思,俺这程序还是太长了,有空偶还是优化一下再说吧”。啊你说,这气不气人。
到真正了解一些J语言的底细之后,才明白,之所以APL/J/K这一系语言的程序那么短小精焊,完全归功于她们都使用特殊符号记法(notation)来表达计算过程,计算模式。
于是区区受了一段时间J语言的虐待,一直使用她来解Project Euler的问题,不过做题太功利,一直觉得没什么意思,直到某日翻看J Vocabulary时,发现可以用@.(Agenda)`(Tie)$:(Self-Reference)可以用来表达Scheme中的判断和递归。。。当时第一个在脑子中想到的程序是Factorial(很挫吧),但是这个程序实在是无聊啊,倒不如配合<(Box)写个图形化的Demo吧,,于是,,以后就有办法跟别人炫这个古怪的notation了。。。。
<@<`($:@<:;<) @. * 10 NB. 递归输出金字塔的程序
J语言居然使用NB.作为注释的起始标志啊,真是够NB的。。
区区解了30多道题,1/3用erlang,1/4用python,还有剩下的是用J解决的。。
最初到Project Euler去玩,纯粹是想练习一下erlang编程的。。其中有些题目,因为急躁,又想不出很方便的erlang解法,就祭起python来搞定了 (啊你问为什么我不用perl或者C++?因为区区最近项目中只使用了Python和Java啦,而你知道的,一般情况下,区区都只开emacs不用eclipse的)。。
由于使用的是emacs,可以很轻松地同时使用多个动态语言,所以后来很轻松地就搭起了J语言的练习buffer了。
到目前为此,有三个编程语言让在下非常头痛过:
C ---- 中学时学这种东西没人指导,当然会头痛
Lisp ---- 或者说是scheme吧,老实说,虽然痛,但也挺有快感的说
J ---- 这是APL的主要后继语言之一。看J手册,她说要用类似人类语言的方式来学习。这类事情区区可是有经验的,那些越说自己像人类语言的语言啊,陷阱就越是多(Lisp/Perl/Python/Ruby/TCL都在此列)。
忘了说明自己学J语言的原因了,故事是这样的:
区区尝试用erlang/python好容易写了十来行或者几十行的程序把一个问题解对了,解决了。再到那一题的论坛里看时,那些用APL/J/K的小样(好啦,牛人啦),就一下子丢个十几个字符或者几十个字符的程序也把问题解了,末了还不忘说一句:“诶,不好意思,俺这程序还是太长了,有空偶还是优化一下再说吧”。啊你说,这气不气人。
到真正了解一些J语言的底细之后,才明白,之所以APL/J/K这一系语言的程序那么短小精焊,完全归功于她们都使用特殊符号记法(notation)来表达计算过程,计算模式。
于是区区受了一段时间J语言的虐待,一直使用她来解Project Euler的问题,不过做题太功利,一直觉得没什么意思,直到某日翻看J Vocabulary时,发现可以用@.(Agenda)`(Tie)$:(Self-Reference)可以用来表达Scheme中的判断和递归。。。当时第一个在脑子中想到的程序是Factorial(很挫吧),但是这个程序实在是无聊啊,倒不如配合<(Box)写个图形化的Demo吧,,于是,,以后就有办法跟别人炫这个古怪的notation了。。。。
<@<`($:@<:;<) @. * 10 NB. 递归输出金字塔的程序
J语言居然使用NB.作为注释的起始标志啊,真是够NB的。。
- J语言的金字塔
- Java中j=j++与c语言中j=j++的区别
- C语言:数字金字塔
- 字母金字塔c语言
- C语言编写金字塔
- C语言 数字金字塔;字母金字塔
- 用Java语言来输出一个镂空的金字塔
- C语言 打印*号金字塔~~~
- C语言实验-打印金字塔
- C语言打印菱形、金字塔
- 通往成功的金字塔
- 我的金字塔
- 金字塔的应用
- 三维金字塔的绘制
- 输入金字塔形状的“*”
- 软件开发的金字塔
- ArcGIS 的栅格金字塔
- opencv图像的金字塔
- 远程控制编程揭密
- [转帖]中文分词源代码解析和下载
- VB.NET中字符串操作函数
- NFS服务的配置(虚拟机下的Linux,开发板是ARM9 S3C2410)
- GIS励志
- J语言的金字塔
- 插件式GIS框架书籍的写作计划
- 一个网络电视软件
- 洪昭光:21世纪的健康新标准
- 从文件中提取数字
- 2007年最后一笔
- 我的2007年总结
- 一款源码阅读工具!!
- 新年快乐....