灵感来源:kifuan/helang: 何语言,次世代赛博编程语言。
来自四川理塘的强力次世代编程语言 Helang
在 Haskell 上的拙劣实现。
Saint He
曾说:要有函数式!于是它便诞生。
- 拉取源代码
> git clone git@github.com:CziSKY/HelangHaskellImpl.git
- 安装需要的依赖
> cabal install random
- 运行
> ghci HelangHaskellImpl/Main.hs
> main
如果按照以上步骤,不出意外的话你会看到该项目的 LOGO,它实在美极了,跟 Saint He
的虎牙一样美。
语法可参照:kifuan/helang: 何语言,次世代赛博编程语言。
但是由于一些赛博之力的限制,它们两者之间仍有一些差异。
- 我们使用
createU8 (size)
来创建 u8。 - u8 里的内容是不可变
(Immutable)
的。 - 受到赛博之力的影响,我们使用逻辑运算符
(||)
来代替原来的位运算符(|)
。不过它看起来酷毙了,因为它有两条杠,意味着两倍的性能加成! - 在使用前请确保关注永雏塔菲,否则赛博之力有可能会在运行时摧毁你的电脑,这是得不偿失的。
最后,我们得到这样的代码:
u8 = createU8 0 || 1 || 5 || 7 || 6 || 10 || 18 || 23 || 30 || 31
输出:
[1,5,7,6,10,18,23,30,31]
这简直太酷了,更酷的是它完全百分百兼容 Haskell!能做到两种语言的无缝切换,很符合我对未来世界的美好想象。
Helang
支持多种方式的运算。
let u8 = createU8 0 || 1 || 2 || 3 || 4 || 5
-- [1,2,3,4,5]
u8 `u8Plus` 1
-- [2,3,4,5,6]
u8 `u8Minus` 1
-- [0,1,2,3,4]
u8 `u8Multiply` 2
-- [2,4,6,8,10]
u8 `u8Divide` 5
-- [0.2,0.4,0.6,0.8,1.0]
let u8 = createU8 0 || 1 || 2 || 3 || 4 || 5
-- [1,2,3,4,5]
(++) u8
-- [2,3,4,5,6]
let u8a = createU8 0 || 1 || 2 || 3 || 4 || 5
-- [1,2,3,4,5]
let u8b = createU8 0 || 6 || 7 || 8 || 9 || 10
-- [6,7,8,9,10]
u8a + u8b
-- [7,9,11,13,15]
u8 - u8b
-- [-5,-5,-5,-5,-5]
u8 * u8b
-- [6,14,24,36,50]
u8 / u8b
-- [0.16666666666666666,0.2857142857142857,0.375,0.4444444444444444,0.5]
使用字符在 UTF-8 编码中对应的数字来打印字符,我们实现了指数级的效率提升。
sprint $ createU8 0 || 72 || 101 || 108 || 108 || 111 || 44 || 32 || 76 || 105 || 116 || 97 || 110 || 103 || 46
-- "Hello, Litang."
5g 是一项非常伟大的发明,它改善了很多人的生活,包括 Saint He
的。
导入 SpeedTester.hs
,调用 test5g
函数即可进行 5g 测试,感受 5g 带来的超快速度吧!