FutureScript语言1.3.1发布啦!全新“虚拟方法”让你更为方便地使用lodash
发布于 8 年前 作者 zhanzhenzhen 7659 次浏览 来自 分享

原帖发于2015-12-31。更新:

官网: https://futurescript.org/

1.3.1加入“虚拟方法”,就是“点点”符号,现在使用lodash、underscore可以非常简洁,例如你可以:

[5, 3, [2, 4], 1]..flatten()..sortBy()

网站建议使用Safari、Firefox、Chrome或Edge浏览,IE 11可以浏览但是点击目录时会产生偏移(不知为何)。

37 回复

你都把argument 简化成@ 又把||变成or 到底是想简化 还是让人看懂。。。

贴子里的中文我还以为是机翻的……

@yuu2lee4 为了使可读性和简约达到平衡的状态。arguments如果不变成一个符号的话,即使缩成arg,你仍然会觉得要用“形参”才最简洁。只有变成一个符号再结合<>其简洁程度才会超过箭头函数。而符号中可读性最强的就是@,因为读音都是以a开头的(也可以把@读成arg而不是at)。而为什么要使其简洁程度超过箭头函数?因为有时命名一个参数显得非常冗余,我十分不喜欢为冗余的东西命名。

编程的谁不知道 || & !这些代表什么

@zhanzhenzhen 只有语法的不同?

@yuu2lee4 对,但是这是因为我们已经习惯了。FutureScript的目标之一就是既降低编程难度(使从没编过程的新手掌握的时间少于一般的语言),又比别的语言更厉害,这真的很难,现在才刚刚起步而已。

@CoderIvan 也不是只有语法的不同,比如类的“防冲突字段”,就是新的概念。用Symbol虽然也可以实现,但需要额外加入东西,也不美观。 还有模块的“批量导入”,(就我所知)是现今任何一门语言都没有的。当然我说它好也不一定真好,这类新东西要经过实践的检验。

@CoderIvan 未来fus-ext包一定会加入更多的内容,像数组、集合的处理。我的设想是语言归语言,类库归类库,能用类库实现的(但表示起来不能复杂太多)就尽量用类库,实现“批量导入”的目的其实就是为了能使类库能更方便使用,这样一些功能就不用放进语言里了。现在fus-ext的确功能还太少,就一个循环。

@zhanzhenzhen 文档不错 能分享下是怎么弄的么 最近也在给一个开源项目写文档

@flyflybob 文档里的语法高亮我用的是HighlightJS

; (that's fucking cool!)
js"
    (function() {
        a = 1;
        b = 2;
    })()
"

为啥不自动wrap一下,每次都写好难过吧

有些东西已经在各大语言中成为了约定俗成,刻意去改变它感觉反而适得其反。就像FPS游戏都用WSAD作为上下左右。

932 個commit 。。。

@hikaiao 嗯嗯,整整5个月,开始是写文档,用了1个月,然后是写代码,中间文档又经过数次修改。

想知道楼主以何为生。

楼主好厉害啊。。。。。。楼主在为哪个公司服务啊····

楼主的github没有多少赞啊。大家快为他点赞去吧。。

@flyflybob 不是用markdown,是纯手工写出来的xhtml文件,github上面有(在spec目录下)。不过futurescript.org这个网站的代码(包括实现自动把标题放入边栏等功能的代码)我没有放到github上。 如果是追求快速编写的话,建议你还是用markdown吧,方便(当然灵活性没xhtml那么大,例如表格不太好表示)。

好多好多次commit!

@zhanzhenzhen 虽然我不喜欢这样的语法,但是还是相当佩服楼主

看到第一句,我想起来了初中学的pascal用:=,和你有异曲同工之妙

来自酷炫的 CNodeMD

为楼主的DIY精神和能力点赞

更新够快!

现已加入在线编辑器

@zhanzhenzhen 建议追加在话题正文后。

中文乱码这个解决一下被…

@sharking 中文乱码是因为用了自动检测,把编码里的自动检测关闭就行了。所谓的自动检测,等于是把决定权由代码变为浏览器的“智能判断”,智能的都是不准的。不过,貌似有很多人是用自动检测的?那或许我要改改代码了,让它准一点。

@sharking 中文乱码已解决,现在自动检测应该也准确了。

已更新至0.7.0(把另外一个帖子的内容合并到此贴)

已更新至1.2.0,现已支持剩余参数~

已更新至1.3.1,加入“虚拟方法”:“点点”符号,使用lodash和underscore更为方便,例如:

console.log [5, 3, [2, 4], 1]..flatten()..sortBy()
回到顶部