J语言
维库,知识与思想的自由文库
|
J,是图灵奖获得者肯尼斯·艾佛森和許國華(Roger Hui)於九十年代初發明的一种程序设计语言,是APL语言(亦是由艾佛森所創)、FP、FL函數編程語言的繼承者。 為了避免APL使用特別的字集而遇到的問題,J只需基本的ASCII字集,多用點號和冒號來擴展現有基本字元的意義。 作為一個陣列編程語言,J非常簡潔和強大,在數學和统计学程式設計上十分有效,特別是矩陣分析的能力。 如同原本的FP/FL程式語言,J透過它編程的特色,支援Function-level programming。 J並非馮諾曼程式語言,卻能容許程式員使用馮諾曼編程風格。 [编辑] 例子J是極強大的語言,它的程式可以非常簡潔,但通常會變得像密碼。以下是個快速排序的單行小程式︰
qsort =: ]`(($:@:((}.<:{.)#}.)),{.,($:@:((}.>{.)#}.)))@.(*@#)
(不,它不是Linear A script.) 但是如果我们定义一些中间记忆名称的话,(NB.为注释):
id =: ] NB. 定义函数
choose =: @. NB. 条件执行
first =: {. NB. 集合首元素
rest =: }. NB. 除首元素之外的其他元素
o =: @: NB. 函数撰写: f o g (x) = f(g(x))
void =: [:
sign =: * : void NB. monadic only, void dyadic
length =: # : void NB. monadic only, void dyadic
selfrom =: void : # NB. dyadic only, void monadic
notEmpty =: sign o length NB. sign 0 = 0
selLEF =: (rest <: first) selfrom rest NB. select Less-than or Equal to First selGTF =: (rest > first) selfrom rest NB. select Greater-Than First qsort =: id ` (($: o selLEF),first,($: o selGTF)) choose notEmpty 注意这是一个匿名递归函数. J语言提供了自身形参 操作 [编辑] 字彙http://www.jsoftware.com/help/dictionary/vocabul.htm"
[编辑] 外部鏈結
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


