Skip to content
This repository has been archived by the owner on Aug 26, 2023. It is now read-only.

CziSKY/HelangHaskellImpl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HelangHaskellImpl

灵感来源:kifuan/helang: 何语言,次世代赛博编程语言。

来自四川理塘的强力次世代编程语言 Helang 在 Haskell 上的拙劣实现。

Saint He 曾说:要有函数式!于是它便诞生。

使用方法

不用安装,也能使用。

  1. 拉取源代码
> git clone git@github.com:CziSKY/HelangHaskellImpl.git
  1. 安装需要的依赖
> cabal install random
  1. 运行
> ghci HelangHaskellImpl/Main.hs
> main

如果按照以上步骤,不出意外的话你会看到该项目的 LOGO,它实在美极了,跟 Saint He 的虎牙一样美。 USAGE_IMAGE

语法

语法可参照: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]

u8 运算

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 测速

5g 是一项非常伟大的发明,它改善了很多人的生活,包括 Saint He 的。

导入 SpeedTester.hs,调用 test5g 函数即可进行 5g 测试,感受 5g 带来的超快速度吧!

About

1!5!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published