#编程语言 #golfing #变量 #函数

应用 shortlang

一种专为代码高尔夫设计的编程语言

1 个不稳定版本

0.4.0 2024年1月27日

#245编程语言

GPL-3.0-only

175KB
4.5K SLoC

ShortLang

一种专为代码高尔夫设计的编程语言

ShortLang 文档

欢迎使用 ShortLang 的官方文档,这是一个快速且简洁的解释型编程语言,专为代码高尔夫设计。ShortLang 用 Rust 实现,性能比 Python 快 5 倍。

目录

  1. 基本数据类型
  2. 你好,世界
  3. 运算符
  4. 变量
  5. 数组
  6. 函数
  7. 注释
  8. 条件语句
  9. 循环

基本数据类型

  • int
  • float
  • bool
  • array
  • nil

你好,世界

要打印带有换行符的 "Hello World" 到标准输出,请使用

$"Hello World"

如果您想打印不带换行符,请使用

$$"Hello World"

ShortLang 在标准库中提供了 printprintln 函数用于相同的目的。


为了可读性,我们在示例中将使用 printprintln

运算符

运算符 描述
+ 加法
- 减法
* 乘法
/ 除法
% 取模
++ 自增
-- 自减
** 指数
< 小于
> 大于
== 等于
<= 小于等于
>= 大于等于
&&
||

变量

变量可以不使用分号创建。例如

var_name = value
number = 42
$("The number is: " + number)

数组

以下代码显示了一个数组示例

fibonacci = [0, 1, 1, 2, 3, 5, 8, 13]

$("5th fibonacci number is " + fibonacci[5])

函数

内联函数

类似于 Python 中的 lambda 函数

add a b: a + b
println(add(10, 20)) // prints 30

多行函数

add a b: {
  println("You are adding: " + a + " and " + b)
  a + b
}

println(add(10, 20))

多行函数的最后一行是返回值。


如果返回值不在函数末尾,您也可以显式使用 & 来表示返回值。

max a b: {
    a > b ? &a : &b
    $"this line won't be printed"
} 

注释

注释从 // 开始。

条件语句

三元运算符用于 if-else

a = 1
a == 1 ? println("The expression is true") : println("The expression is false")

块执行

true ? {
    // code here will be executed
} : {
   // if condition is false
}

else 块可以省略

a == 10 ? println("a is equal to 10")

循环

ShortLang 目前支持 while 循环

>. condition {
    // code to be executed while the condition is true
}
i = 0
>. i < 10 {
    $("Value of i is: " + i)
    i ++
}

此代码打印

Value of i is: 0
Value of i is: 1
Value of i is: 2
Value of i is: 3
Value of i is: 4
Value of i is: 5
Value of i is: 6
Value of i is: 7
Value of i is: 8
Value of i is: 9

杂项

阶乘函数示例

factorial x: x < 2 ? 1 : x * factorial(x - 1)
$factorial(30)

打印

265252859812191058636308480000000

依赖

~28MB
~598K SLoC