`
qiezi
  • 浏览: 498699 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Io Language学习:基本语法

阅读更多
Io Language没有关键字,所以它的语法很简单:

// 赋值
a := "hello world"

// 取值
a

// 方法调用:
a println

// 方法调用2:
a split(" ")

// 方法调用3:
a slice(1, 3)

// 方法调用在Io里面叫作message,和Ada, Ruby, Objective-C这类语言相似

// 操作符:
1 + 1

// 操作符本身也是函数:
1 + 1 // 等价于 1 getSlot("+")(1),函数不能像操作符这么使用

// \n 和 ; 作用是一样的,都可以分割语句

// 字符串语法:
quote ::= MonoQuote | TriQuote
MonoQuote ::= """ [ "\"" | not(""")] """
TriQuote ::= """"" [ not(""""")] """""

// 注释:
# 单行注释
// 单行注释
/* 多行注释 */

// 数字:
a := 0x10
a := 1.2e10

// 创建对象:
a := Object clone
lst := List clone

// 创建类(实际上是原型扩展,clone原型并扩展):
Person := Object clone do(
    name := nil
    age := 1
    sayhi := method(
        "hi" println
    )
)

// 或者不用指定成员了
Person := Object clone

// 创建实例(也是原型扩展)
a := Person clone
me := Person clone do(
    name := 'xxx'
    age := 0
)

// 函数编程:
fib := method(n,
    if(n < 2,
      1,
      fib(n-1) + fib(n-2)
    )
)
fib(5)


就这些东西了,所有东西都在这上面扩展的,比如if/else/for/foreach/while/loop,这和LISP有些相似。

简单程序:

// 创建List:
people := list(
  Person clone do(name := "aaa"; age := 19),
  Person clone do(name := "bbb"; age := 20),
  Person clone do(name := "ccc"; age := 21),
  Person clone do(name := "ddd"; age := 22)
)

// map:
people map(person, person name)
// 或简单写为:
people map(name)

// select:
people select(person, person age < 21)
// 或简写为:
people select(age < 21)

0
0
分享到:
评论

相关推荐

    跟我一起学Visual Studio 2005(1):C#语法篇(上)PDF

    - 变量与数据类型:C#支持多种数据类型,包括基本类型(如int、float、bool)和引用类型(如类、接口)。理解变量的声明、初始化和作用域至关重要。 - 控制流语句:包括条件语句(if、switch)、循环语句(for、...

    Atom-language-gdscript,atom.io的gdscript语言语法包。为prestonknopp/语言做出贡献.zip

    这个语法包由 prestonknopp 开发并维护,它在 atom.io 上发布,便于广大开发者下载和使用。 Atom 是一款由 GitHub 开发的开源文本编辑器,它的独特之处在于使用了 Web 技术(如 HTML、CSS 和 JavaScript)进行构建...

    Profinet GSD Checker: PN-IO设备的GSD文件xml语法检查器

    《Profinet GSD Checker: 为PN-IO设备的GSD文件XML语法把关》 在工业自动化领域,Profinet(Process Field Network)是一种基于以太网的通信标准,广泛应用于工厂自动化中的分布式I/O(Input/Output)设备。在开发...

    hotsse.github.io:https:hotsse.github.io

    【hotsse.github.io:...如果使用了Jekyll,那么可以了解Markdown语法、变量、布局和插件在静态站点生成器中的应用。总的来说,这个项目为学习和实践Web开发,特别是HTML基础提供了一个实用的实例。

    IO和XML讲解

    在Android开发中,IO(Input/Output)和XML(eXtensible Markup Language)是两个非常重要的概念。本文将深入探讨这两个主题,尤其对于初学者来说,了解它们的基础知识至关重要。 首先,我们来讨论IO。在计算机科学...

    Atom-language-todotxt,atom.io的todo.txt文件的语法突出显示和实用程序.zip

    【Atom-language-todotxt】是为Atom文本编辑器设计的一款插件,专门用于增强对`todo.txt`文件的语法高亮和实用功能。这款插件由atom.io社区开发,目的是提升开发者和用户在处理`todo.txt`任务管理格式时的工作效率和...

    JSP基本语法.ppt

    &lt;%@ page language="Java" extends="HttpServlet" import="java.io.*, java.util.Date" session="true" buffer="16kb" %&gt; ``` 这里,`language`指定了JSP使用Java作为编程语言,`extends`指定了Servlet的超类,`...

    c# 基础知识库 基本语法等源码

    这个“c#基础知识库 基本语法等源码”压缩包包含了C#语言的基础控件使用和语法实践,是初学者入门和进阶的重要资源。下面,我们将详细探讨C#的一些核心知识点。 1. **基本语法**:C#的语法结构类似于C++和Java,...

    microconfig.io-site:网站来源

    HTML(HyperText Markup Language)是构建网页的基本语言,用于定义网页内容的结构和意义。在microconfig.io-site的源代码中,可以看到HTML元素的使用,如`&lt;head&gt;`、`&lt;body&gt;`、`&lt;header&gt;`、`&lt;nav&gt;`、`&lt;section&gt;`、`...

    language-gdscript:atom.io的gdscript语言语法包

    atom.io的GDScript(Godot脚本语言)语法。 产品特点 突出显示gd,tres,tscn和project.godot文件的语法。 Godot(v3.2 +)提供的GDScript自动完成功能 集成 添加数据提示,诊断和超点击支持。 依存关系 node- gyp...

    bloomsolptyltd.github.io:https:www.bloomsol.com的编译代码

    为了构建并运行这个网站,开发人员可能会使用现代前端工具链,如Webpack、Gulp或Grunt进行模块打包,Babel进行JavaScript语法转换,以及PostCSS处理CSS预处理器。此外,可能还利用了Git进行版本控制,GitHub Pages...

    C# 语法全解 基本语法

    C#是一种广泛应用于开发Windows应用程序、Web应用以及游戏的编程语言,由微软公司推出,它在.NET...以上只是C#语法基础的冰山一角,深入学习还需结合实际项目实践。希望这份C#语法全解能为初学者提供一个良好的起点。

    alexeypa.github.io:https:blog.not-a-kernel-guy.com

    5. Markdown语法: 文件列表中可能包含`.md`文件,这是Markdown格式的文本文件。Markdown是一种轻量级的标记语言,用于编写易读易写的纯文本格式,然后可以转换成HTML。学习Markdown可以简化内容创作过程,提高效率...

    V-Vincen.github.io:https:v-vincen.life

    V-Vincen.github.io 是一个个人博客网站,其源代码托管在GitHub上,可以通过访问 &lt;https://...总的来说,V-Vincen.github.io 的源代码是一个很好的学习资源,可以帮助我们深入了解静态站点生成器和GitHub Pages的使用。

    HaenaraShin.github.io::rainbow:Haenara的开发博客

    7. **Markdown**:GitHub Pages通常结合Markdown编写内容,这是一种轻量级的标记语言,语法简洁,易于阅读和编写。Markdown支持标题、列表、代码块、链接等,可以方便地转换为HTML。 8. **版本控制**:使用GitHub...

    vb.net学习基础语法

    1. **基本语法结构**:VB.NET的代码结构基于C-like语法,包括变量声明、数据类型(如Integer、Double、String等)、流程控制(如If...Then...Else、For...Next、While...End While等)和函数调用。 2. **对象和类**...

    language-io:Atom 的 Io 语言支持

    语言io包Atom 的 Io 语言支持。 向 Atom 中的 Io 文件添加语法突出显示和片段从 Atom 包安装从 Atom 包中搜索“io”安装手册cd ~/.atom/packages git 克隆 版权所有 (c) 2014

    emacs-languagetool.github.io:emacs-languagetool的登录页面

    Emacs-Languagetool是Emacs的一个插件,它集成了Languagetool这一开源的语法和拼写检查工具。这个插件极大地增强了Emacs在编写文档和代码时的错误检测能力,帮助用户提升文本质量。 Languagetool是由Jörg ...

    language-eml:@mariozaizar为Atom编辑器制作的电子邮件语法高亮显示

    语法: .eml , .msg , .mbx和.mbox文件的。 片段: 。 HTML电子邮件模板。 。 附件电子邮件模板。 命令: 。 。 。 键映射(快捷方式): ctrl-alt-1用于电子邮件预览。 ctrl-alt-2用于带引号的可...

    language-drupal:Atom.io 的 Drupal 语法高亮显示和片段

    Atom 中的 Drupal 支持 语法高亮显示和 Atom 片段。 安装 文件 -&gt; 首选项... 点击套餐 搜索“语言 Drupal” 点击安装 来源 历史 执照 在极其许可下 版权所有 :copyright: 2014+ Rob Loach ( )

Global site tag (gtag.js) - Google Analytics