自荐一个编程语言: Lite

2019-07-21 09:08:10 +08:00
 Kulics
Main(->) {
    print("Hello, world!")
    greetings = get_greetings("love lite!")
    greetings @ [index]value {
        ? index == 0 {
            print(value)
        } index == 1 {
            print(value + ", 世界!")
        } _ {
            print(value + ", world!")
        }
    }
}

get_greetings(first str -> result []str) {
    <- first + {"你好", "Hola", "Bonjour",
                "Ciao", "こんにちは", "안녕하세요",
                "Cześć", "Olá", "Здравствуйте",
                "Chào bạn"}
}
11753 次点击
所在节点    程序员
112 条回复
no1xsyzy
2019-07-21 14:52:12 +08:00
@pisc “核心体验” 而不是 “实现核心” 或者 “核心思想”
Kulics
2019-07-21 14:52:45 +08:00
@dandycheung 谢谢,反正自己爽是第一的。
imNull
2019-07-21 14:54:04 +08:00
支持楼主
Kulics
2019-07-21 14:55:09 +08:00
@no1xsyzy { 的确是跟 go 一样必须在第一行。静态语言没有判断类型吗?至少我用的多的 c#和 go 都有。
inhzus
2019-07-21 14:55:13 +08:00
看不起左撇子程序员?为什么要一直用右手小指!涉嫌歧视左撇子,建议击毙(滑稽
love
2019-07-21 17:13:09 +08:00
为啥要追求取消一切关键字?那不是更不可读了?
比如你这个循环:

@ {
...... # 永远不会跳出 #
}

太不显眼了

至于跳出循环用 <-@ 这是什么鬼,简直是为符号而符号吧,用个 break 会死吗

@ {
<- @ # 什么都没执行就跳出了 #
}
wi
2019-07-21 18:41:22 +08:00
想法和有一致,也有不同,留个联系方式,我们交流一下
datou
2019-07-21 18:45:40 +08:00
符号太多能劝退不少新手

比如 c++和 rust 这样的
v2nika
2019-07-21 19:14:39 +08:00
用符号换关键字有啥意义?
Kulics
2019-07-21 20:03:47 +08:00
@love 可读性建立在学习语法之后,函数退出用了 <- ,循环退出用这个也是合理的。不会死,但没必要。
Kulics
2019-07-21 20:04:10 +08:00
@wi 邮箱呗 kulics@qq.com
Kulics
2019-07-21 20:05:44 +08:00
@datou 本来设计目标也不是新手,没有想追求低门槛。写的语言多的人更容易体会到 Lite 的优点。
Kulics
2019-07-21 20:08:00 +08:00
@v2nika 符号替换关键字没意义,精简语法有意义。
zeroDev
2019-07-21 20:20:34 +08:00
@qdwang 给个理由?
GM
2019-07-21 20:40:07 +08:00
@datou 符号太特立独行既能劝退新手,也能劝退老手。
tanszhe
2019-07-21 20:55:10 +08:00
手动点赞 赞!!
有些建议
现在语言已经非常多了,一个新的语言还能流行起来,必然有自己非常明显的优势,正好解决程序员一些痛点。
go,rust 算是新贵 都符合这个特征。
no1xsyzy
2019-07-21 21:49:04 +08:00
@Kulics 本来 Variant / Union 类型就是处于动态和静态中间的。
要觉得 Variant 也能算静态类型,你怎么不说 Python 就是个类型是 any/c 的静态类型?它也能 annotation 写类型标记,有了这类型标记也能写个 linter。
luopengfei14
2019-07-21 22:10:48 +08:00
虽然楼上很多人说不太好,但是我觉得敢写语言的都很牛逼,摩拜一下👍
no1xsyzy
2019-07-21 22:19:12 +08:00
@Kulics #58 我指的是你原文的 “通过去除关键字”,实际上你并没有去掉哪怕一个。
何况问号 “?” 本身完全可以被设定为可用于标识符的字符。是问号、叹号还是 if 并没有什么区别。
函数名 equal? null? bool? str?
(defmacro ? c `(case ,@c))
这样的语法糖我一分钟能写 26 个。
不过如果要写 26 个我会先写个语法糖 (defmacro sweet (orig new) (let ((c (gensym))) `(defmacro ? ,c `(case ,@,c))))
no1xsyzy
2019-07-21 22:25:37 +08:00
另外一个,<-@ 对我来说更像是 continue
(function @() {
doSomething();
if(sometimes()){
return @()
}
doRest();
return @()
})()
@ 是一个函数名,并且调用函数不需要括号(像 ruby 或者很多 shell )的话,return @() 就是在 call 自己,符合尾调死循环的 continue 等价物。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/584791

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX