发觉谬误比寻求真理容易,因为前者浮于表面容易见到,而后者藏于深处。——歌德
分享一个基于jvm
的编程语言soya
https://github.com/mySingleLive/soya
soya
有很多很棒的特性:
- Intuitive Syntax:指编程语言的语法易于理解和使用。
- OOP features:指面向对象编程的特性,如封装、继承、多态等。
- Functional Programming features:指函数式编程的特性,如高阶函数、纯函数、不可变性等。
- Support many basic type literals (ex. collection, regular expression, file, url, date):指编程语言支持多种基本类型的字面量,如集合、正则表达式、文件、URL、日期等。
- Pattern Matching features:指模式匹配的特性,可以用于匹配数据结构中的模式。
- Exception Handling:指程序出现异常时的处理机制,可以用于优雅地处理错误。
- Advanced Assignment:指高级赋值语法,如解构赋值、链式赋值等。
例如这里的简单语法展示
代码语言:javascript复制lst := [1, 3, 'Apple', 'Peter', 2, 'House', 14]
lst[String] = 'X'
lst[int v] = v * 2
println(lst) // Output: [2, 6, "X", "X", 4, "X", 28]
以及进阶语法:
代码语言:javascript复制users :=
* name: 'Peter'
age: 16
* name: 'Marry'
age: 12
* name: 'Scott'
age: 78
users[age: 14..100].each { println(it.name) }
// Output:
// Peter
// Scott
users.each {
match it
| age: 0..50 -> println("{it.name} is young")
| age: 50..100 -> println("{it.name} is old")
}
// Output:
// Peter is young
// Marry is young
// Scott is old