解释型面向对象语言 Nu-Lang

解释型面向对象语言 Nu-Lang

Apache
Objective-C 查看源码»
OS X
2014-12-08

Nu 是一门解释型的面向对象语言,最初由Tim Burks开发。其语法来自 Lisp,但是 Nu 在语义上要更接近于 Ruby。Nu 使用 Objective-C 语言实现,并且它被设计用于能够充分利用 Objective-C 运行时和许多使用 Objective-C编写的成熟的类库。Nu 代码可以完美集成在使用 Objective-C 写的代码中。Nu 和 Objective-C 中的对象可以互相接受和发送消息(messages)而无须考虑该消息是由二者中的哪一个实现的。

该语言最初在 C4 会议(在2007年8月由独立的 Mac 开发者举办的大会)上发布。

Nu语言之所以被认为是相对小众的工具,可能是因为它的类 Lisp 语法,不过最近开始随着函数式编程语言的流行而开始引人注意。

事例代码:

下面的Nu代码定义了一个简单的复数(complex number)类:

(class Complex is NSObject
  (ivar (double) real
        (double) imaginary)
 
  (- initWithReal:(double) x imaginary:(double) y is
    (super init)
    (set @real x)
    (set @imaginary y)
    self))

 该事例是一个复数的基本定义:其定义了实例变量(instance variable)以及一个用于初始化该对象的方法(method)。该事例展示了Nu代码与Objective-CRuby代码之间的相似性。

(unless @prefix
        (set @prefix 
             "#{((((NSProcessInfo processInfo) arguments) 0) dirName)}.."))
 
(unless @icon_files 
        (set @icon_files 
             (array "#{@prefix}/share/nu/resources/nu.icns")))

上面这段代码来自与Nu语言捆绑在一起的nuke工具,这段代码也展示了在Nu这门语言的设计中存在许多Objective-C, Lisp 和 Ruby 的影子。

Nu 需要运行在 Mac OS X 10.7 or iOS 4.3及更新的版本中。

的码云指数为
超过 的项目
加载中

评论(1)

开源中国真理部部长
开源中国真理部部长
可以尝试一下这门语言,很有意思 Nu

暂无资讯

暂无问答

C简陋版 printf

C简陋版 printf

2014/05/15 20:40
81
0
VI带行号查看

VI带行号查看

2014/09/25 15:20
49
0
20180916_java_第三次_李大未

public class Classes { Classes(){} Classes (String na,String nu) { name=na; num=nu; } String name; String num; public void showName(){ System.out.println(name); } public void sh...

2018/09/19 11:49
1
0
通过伪静态解决中文乱码问题

当在网站使用伪静态的时候.显示中文出现乱码.不妨在你的伪静态页面中加上[QSA,NU,PT,L]试试 比如将 RewriteRule ^(.*)$ index.php?$1 [L] 改成 RewriteRule ^(.*)$ index.php?$1 [QSA,NU,PT...

2013/06/17 15:45
118
0
Linux基本设置操作

1、图形界面和命令行界面切换 2、linux命令中q、wq、q!的区别 3、在linux中使用vi 打开文件时,设置显示行号

2015/01/20 10:12
67
0
VIM 显示行号

vim打开文件时,默认是不提示行号的。要向默认显示行号,需要配置两个文件: (1)配置所有账户(/etc/vimrc) (2)仅配置当前账户(~/.vimrc) 打开vimrc文件(要配置所有账户/etc/vimrc,...

2016/09/07 17:26
7
0
vim

1. show line numbers :set nu or :set number :set nu! my ~/.vimrc nmap <c-s> :w<CR> imap <c-s> <Esc>:w<CR>a set ignorecase set smartcase set tabstop=4 set shiftwidth=4 set softt...

2014/05/03 12:07
109
0
java-java57-第四次作业

一、班级类 public class Class { int number; String name; public Class(){} public Class(int nu,String na){ this.number=nu; this.name=na; } public void display(){ System.out.print...

2017/11/04 21:28
6
0
linux - vi/vim常用

设置行号: 手动打开/关闭行号 : set nu / set nonu vi ~/.vimrc , 写上 set nu , wq即可。

2015/11/04 14:14
63
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部