Lisette,一种受Rust启发的迷你语言,编译为Go。
Lisette a little language inspired by Rust that compiles to Go

原始链接: https://lisette.run/

代数数据类型 · 模式匹配 · 无空值 · Hindley-Milner 类型系统 · 默认不可变 与 Go 生态系统互操作 import "go:fmt" import "go:io" import "go:os" fn load_config(path: string) -> Result<Cfg, error> { let file = os.Open(path)? defer file.Close() let data = io.ReadAll(file)? parse_yaml(data) } fn main() { match load_config("app.yaml") { Ok(config) => start(config), Err(e) => fmt.Println("error:", e), } }

## Lisette:一种受 Rust 启发并编译为 Go 的语言 一种名为 Lisette (lisette.run) 的新语言因其受 Rust 启发的設計并编译为 Go 而备受关注。该项目旨在结合 Rust 的正确性和安全性特性,以及 Go 的性能和强大的运行时环境。 讨论强调了对 Rust 类似保证的渴望,*但*无需低级复杂性。一位评论员表示想要“带有 GC 的 Rust”——正确性和符合人体工程学的设计,而无需担心手动内存管理。 Lisette 的创建者专注于有用的错误信息,用户好奇的是,在调试编译后的 Go 代码时,错误如何映射回 Lisette 源代码。在现有 Go 项目中的采用,特别是从 Go 调用 Lisette 代码,被视为一个关键挑战。该项目目前定位为一种语言设计探索,以及通往生产就绪语言的潜在途径。诸如适当的枚举支持等特性对某些人来说尤其有吸引力。
相关文章

原文

Algebraic data types · Pattern matching · No nil · 
Hindley-Milner type system · Immutable by default
Interoperability with Go's ecosystem

import "go:fmt"
import "go:io"
import "go:os"

fn load_config(path: string) -> Result<Cfg, error> {
  let file = os.Open(path)?
  defer file.Close()
  let data = io.ReadAll(file)?
  parse_yaml(data)
}

fn main() {
  match load_config("app.yaml") {
    Ok(config) => start(config),
    Err(e) => fmt.Println("error:", e),
  }
}
联系我们 contact @ memedata.com