Go to file
chai2010 b08ea25c20 math/rand 增加 GetRandomData 函数 2023-10-04 06:45:59 +08:00
.github/workflows 修复 github action 2023-07-26 22:04:03 +08:00
.workflow 完善 waroot 目录 2023-06-18 17:03:41 +08:00
api 完善 syntax 语法格式 2023-06-28 01:17:26 +08:00
docs fix: svg 2023-09-17 16:45:42 +08:00
internal runtime 包导出引用辅助函数 2023-10-04 06:26:36 +08:00
waroot math/rand 增加 GetRandomData 函数 2023-10-04 06:45:59 +08:00
.gitignore 修复 wa init 命令 2023-07-22 21:53:58 +08:00
.goreleaser.yml goreleaser: main 分支是个错误, 修复 2023-07-27 19:53:35 +08:00
LICENSE 启用 AGPLv3 协议 2022-10-20 21:18:55 +08:00
Makefile 简化 wa 命令行界面 2023-07-22 14:26:01 +08:00
README-zh.md 更新 readme 2023-08-12 07:53:30 +08:00
README.md 更新 readme 2023-09-14 06:05:37 +08:00
go.mod 简化 mod 文件, 采用 ini 格式 2023-08-01 20:26:11 +08:00
go.sum 简化 mod 文件, 采用 ini 格式 2023-08-01 20:26:11 +08:00
main.go 重构 wa 命令代码目录结构 2023-06-22 19:21:46 +08:00
wa.code-workspace 添加 vscode 工作区文件 2023-10-03 06:33:49 +08:00

README.md

The Wa Programming Language

简体中文 | English

Build Status Coverage Status GitHub release license

Wa is a general-purpose programming language designed for developing robustness and maintainability WebAssembly software. Instead of requiring complex toolchains to set up, you can simply go install it - or run it in a browser.

Note: Our canonical Git repository is located at https://gitee.com/wa-lang/wa. There is a mirror of the repository at https://github.com/wa-lang/wa. Unless otherwise noted, the Wa source files are distributed under the AGPL-v3 license found in the LICENSE file.

Playground

https://wa-lang.org/playground

Snake Game

Example: Print Wa

Print rune and call function

import "fmt"

global year: i32 = 2023

func main {
	println("hello, Wa!")
	println(add(40, 2), year)

	fmt.Println(1+1)
}

func add(a: i32, b: i32) => i32 {
	return a+b
}

Execute the program:

$ wa run hello.wa 
hello, Wa!
42 2023
2

Example: Print Prime

Print prime numbers up to 30:

func main {
	for n := 2; n <= 30; n = n + 1 {
		isPrime: int = 1
		for i := 2; i*i <= n; i = i + 1 {
			if x := n % i; x == 0 {
				isPrime = 0
			}
		}
		if isPrime != 0 {
			println(n)
		}
	}
}

Execute the program:

$ cd waroot && wa run examples/prime
2
3
5
7
11
13
17
19
23
29

Example: Print Prime with Chinese syntax

Print prime numbers up to 30:

引于 "书"

【启】:
  // 输出30以内的素数
  从n=2到n>30有n++
    设素=1
    从i=2到i*i>n有i++
      设x=n%i
      若x==0则
        素=0
      。
    。
    若素!=0则
      书·曰n
    。
  。
。

Output is the same as the previous example.

More examples waroot/examples

Contributors

Contributor Contribution points
柴树杉 35000
丁尔男 42500
史斌 29000
扈梦明 14000
赵普明 17000
宋汝阳 2000
刘云峰 1000
王湘南 1000
王泽龙 1000
吴烜 3000
刘斌 2500
尹贻浩 2000