moonbit专题

国产编程语言:MoonBit(月兔)发布!【送源码】

MoonBit(月兔),由中国开发者团队创建的编程语言(类似 Rust,支持 GC),由粤港澳大湾区数字经济研究院(IDEA 研究院)基础软件中心负责人张宏波领导的团队开发,目标是打造下一代智能开发平台。 官网:MoonBit | moonbitlang.cn 更确切地说,MoonBit 是一个用于云计算和边缘计算的 WebAssembly 端到端编程语言工具链,集开发、编译、测试、部署于

深入探索如何在 MoonBit 中实现 Haskell 求值语义(三)

本期文章为在MoonBit中实现惰性求值的第三篇。在上一篇中,我们了解了let表达式的编译方法以及如何实现基本的算术比较操作。这一篇文章中,我们将实现一种基于上下文的优化方法,并添加对数据结构的支持。 追踪上下文 回顾一下我们之前实现primitive的方法: let compiledPrimitives : List[(String, Int, List[Instruction])] =

MoonBit 本周新增类型标注语法、继续进行核心库 API 整理工作

MoonBit更新 类型标注增加了新的语法T? 来表示Option[T] struct Cell[T] {val: Tnext: Cell[T]?}fn f(x : Cell[T]?) -> Unit { ... } 相当于 struct Cell[T] {val: Tnext: Option[Cell[T]]}fn f(x : Option[Cell[T]]) -> Unit {

MoonBit 本周有重磅更新!枚举构造器支持可变字段、数组字面量默认构建 Vector

MoonBit更新 支持了构造器的 payload 中出现 mutable field,使用方式如下: enum E {C(mut ~x : Int, mut ~y : Int)} derive(Debug)fn swap_xy(x : E) -> Unit {match x {// `~y` 会绑定模式匹配前 `C` 中的 `y` 字段的值// 当看到 `C(..) as c` 这种模式时

MoonBit 本周有超多重磅更新:零开销迭代,动态数组模式匹配完美支持

MoonBit更新 标准库里添加了 Iter 类型,该类型可以高效地对容器中的元素的进行访问,并且将访问过程优化成循环,使用方式比如: test "iter" {let sum = Iter::[1, 2, 3, 4, 5, 6].filter(fn { x => x % 2 == 1 }).take(2).map(fn { x => x * x}).reduce(fn (x, y) { x

MoonBit 2024 Qcon 北京精彩回顾速览

2024年4月11日至13日,QCon 全球软件开发大会暨智能软件开发生态展在北京国测国际会议会展中心举办。本次 QCon 大会汇集了100+技术大咖,通过1场主论坛、近30+分论坛以及5场高端闭门交流和多场闪电演讲等多样化的活动形式,促进了与会者的深入交流。MoonBit 受邀参加此次 Qcon 大会,共同探讨2024年的重点技术布局与落地实践。 接下来,跟随我们一起回顾 MoonBit

多图回顾|MoonBit 首场线下 MeetUp 回顾

3 月 23 日,MoonBit 首场线下 MeetUp 活动在深圳顺利举办。 在首场 MoonBit 线下 MeetUp 活动中,五位行业内的知名专家带来了四个以探索国产基础软件新发展为主题的精彩内容分享! 一起来看看嘉宾们带来了哪些行业内的最新思考吧! 嘉宾分享 01 张宏波——AI 编程时代下的编程语言发展 随着大模型的出现,开发者工具这个行业正在进行着巨大的变革。在 Chat

MoonBit标准库开源,支持带标签/可选参数,还有这些更新值得更新……

01 MoonBit 更新 1. moonbitlang/core 开源 moonbitlang/core(MoonBit标准库)现已开源。我们很高兴收到社区的积极反馈,想了解更多与moonbitlang/core开源的详情,可点击这里查看:国人自主研发的编程语言 MoonBit Core 开源啦! Github链接: https://github.com/moonbitlang/core

MoonBit 新增 += 运算符,引入 super trait 和 List 字面量机制

MoonBit更新 1. 添加了 += 系列语句 包括+=、-=、*=、/=,支持运算符重载: fn init {let array = [1,2,3,4]array[2] *= 10println(array) // [1, 2, 30, 4]}fn init {let mut a = 1a += 20println(a) // 21}struct Foo {data : Array

MoonBit月兔新增多行字符串支持

MoonBit 更新 1. 新增多行字符串支持 每行需要以#|开头。多行字符串每行之间允许断开、插入注释,字符串内不支持转义和字符串插值。 2. 新增函数式的loop循环 其中continue 只允许出现在尾递归调用的位置,loop内允许使用break提前返回一个值。 3. 提供Trait::method调用支持 支持以Debug::debug_write(self, buf

国产编程语言MoonBit添加问号操作符

MoonBit更新 01. 添加内置类型 Result enum Result[T, E] {Ok(T)Err(E)} 02. 添加问号操作符 新增了问号操作符,用于简化错误处理: fn may_fail() -> Option[Int] { ... }fn compose_may_fail() -> Option[String] {let x = may_fail()?let y