README.md 3.9 KB
Newer Older
chai2010's avatar
chai2010 已提交
1 2 3
<div align="center">
<h1>🇨🇳 凹语言™ The Wa Programming Language</h1>

chai2010's avatar
chai2010 已提交
4
[主页](https://wa-lang.org) | [Playground](https://wa-lang.org/playground) | [目标](https://wa-lang.org/goals.html) | [路线](https://wa-lang.org/smalltalk/st0002.html) | [社区](https://wa-lang.org/community) | [日志](https://wa-lang.org/changelog.html) | [论坛](https://github.com/wa-lang/wa/discussions)
chai2010's avatar
chai2010 已提交
5

chai2010's avatar
chai2010 已提交
6 7 8
[Document](https://wa-lang.org) | [Playground](https://wa-lang.org/playground) | [Goals](https://wa-lang.org/goals.html) | [Roadmap](https://wa-lang.org/smalltalk/st0002.html) | [Community](https://wa-lang.org/community) | [Changelog](https://wa-lang.org/changelog.html) | [Discussions](https://github.com/wa-lang/wa/discussions)


chai2010's avatar
chai2010 已提交
9 10
</div>
<div align="center">
3
3dgen 已提交
11

chai2010's avatar
chai2010 已提交
12 13
[![Build Status](https://github.com/wa-lang/wa/actions/workflows/wa.yml/badge.svg)](https://github.com/wa-lang/wa/actions/workflows/wa.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/wa-lang/wa)](https://goreportcard.com/report/github.com/wa-lang/wa)
chai2010's avatar
chai2010 已提交
14
[![Coverage Status](https://coveralls.io/repos/github/wa-lang/wa/badge.svg)](https://coveralls.io/github/wa-lang/wa)
chai2010's avatar
chai2010 已提交
15 16
[![GitHub release](https://img.shields.io/github/v/tag/wa-lang/wa.svg?label=release)](https://github.com/wa-lang/wa/releases)

chai2010's avatar
chai2010 已提交
17 18
</div>

chai2010's avatar
chai2010 已提交
19 20 21 22
凹语言™(凹读音“Wa”)是 针对 WASM 平台设计的的通用编程语言,支持 Linux、macOS 和 Windows 等主流操作系统和 Chrome 等浏览器环境,同时也支持作为独立Shell脚本和被嵌入脚本模式执行。

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.
chai2010's avatar
chai2010 已提交
23

chai2010's avatar
chai2010 已提交
24 25
![](docs/images/logo/logo-animate1-blue.svg)

chai2010's avatar
chai2010 已提交
26 27 28
- 主页 (Homepage): [https://wa-lang.org](https://wa-lang.org)
- 开发工具 (Develop Tools): [Playground](https://wa-lang.org/playground), [VSCode](https://marketplace.visualstudio.com/items?itemName=xxxDeveloper.vscode-wa)
- 开发组 (Core Team): [柴树杉(chai2010)](https://github.com/chai2010)[丁尔男(Ending)](https://github.com/3dgen)[史斌(Benshi)](https://github.com/benshi001)[扈梦明(xxxDeveloper)](https://github.com/xxxDeveloper)[刘云峰(leaftree)](https://github.com/leaftree)
29

chai2010's avatar
chai2010 已提交
30
安装和测试 (Install and Run):
chai2010's avatar
chai2010 已提交
31

32 33 34
1. `go install github.com/wa-lang/wa@latest`
2. `wa init -name=_examples/hi`
3. `wa run _examples/hi`
chai2010's avatar
chai2010 已提交
35

chai2010's avatar
chai2010 已提交
36
## 例子: 凹语言 (Example: Print 凹语言)
3
3dgen 已提交
37

chai2010's avatar
chai2010 已提交
38
打印字符和调用函数(Print rune and call function):
chai2010's avatar
chai2010 已提交
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

```
fn main() {
	print('凹')
	print('语')
	print('言')
	print('\n')

	println(add(40, 2))
}

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

chai2010's avatar
chai2010 已提交
55
运行并输出结果 (Execute the program):
chai2010's avatar
chai2010 已提交
56 57 58 59 60 61 62

```
$ go run main.go hello.wa 
凹语言
42
```

chai2010's avatar
chai2010 已提交
63
## 例子: 打印素数 (Example: Print Prime)
3
zz  
3dgen 已提交
64

chai2010's avatar
chai2010 已提交
65
打印 30 以内的素数 (Print prime numbers up to 30):
3
3dgen 已提交
66 67

```
chai2010's avatar
chai2010 已提交
68
# 版权 @2021 凹语言™ 作者。保留所有权利。
3
3dgen 已提交
69

70
fn main() {
3
3dgen 已提交
71
	for n := 2; n <= 30; n = n + 1 {
72
		var isPrime int = 1
3
3dgen 已提交
73 74 75 76 77 78 79 80 81 82 83 84
		for i := 2; i*i <= n; i = i + 1 {
			if x := n % i; x == 0 {
				isPrime = 0
			}
		}
		if isPrime != 0 {
			println(n)
		}
	}
}
```

chai2010's avatar
chai2010 已提交
85
运行并输出结果 (Execute the program):
chai2010's avatar
chai2010 已提交
86 87

```
chai2010's avatar
chai2010 已提交
88
$ go run main.go run _examples/prime
chai2010's avatar
chai2010 已提交
89 90 91 92 93 94 95 96 97 98 99 100
2
3
5
7
11
13
17
19
23
29
```

chai2010's avatar
chai2010 已提交
101
更多例子 (More examples) [_examples](_examples)
3
3dgen 已提交
102

chai2010's avatar
chai2010 已提交
103
## 作为脚本执行 (Execut as a script)
chai2010's avatar
chai2010 已提交
104

chai2010's avatar
chai2010 已提交
105
凹语言本身也可以像 Lua 语言被嵌入 Go 宿主语言环境执行 (The Wa language itself can also be executed like the Lua language embedded in the Go host locale):
chai2010's avatar
chai2010 已提交
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120

```go
package main

import (
	"fmt"
	"github.com/wa-lang/wa/api"
)

func main() {
	output, err := api.RunCode("hello.wa", "fn main() { println(40+2) }")
	fmt.Print(string(output), err)
}
```

chai2010's avatar
chai2010 已提交
121
注:作为脚本执行目前只支持本地环境。(Note: Executing as a script currently only supports native environments.)
3
3dgen 已提交
122

chai2010's avatar
chai2010 已提交
123
## 版权(License)
3
zz  
3dgen 已提交
124

chai2010's avatar
chai2010 已提交
125
版权 @2019-2022 凹语言™ 作者。保留所有权利。(Copyrighe @2019-2022 The Wa author. All rights reserved.)