希望开通新的语言板块
我本人非常喜欢 newlisp, 建议开通. 开通 Lisp 板块也行。不会 Lisp 还叫程序员吗?另外建议开通的还有 Perl6 板块. 2016 年将是 perl6 的世界! 如果 perl 6 与 perl 5 相比 没有得天独厚的优势, 谁会放弃学习 perl 5 而转投 perl 6 怀抱? 即使开通了。。。估计也很冷清。。。 也许会有惊喜,为何不试试呢? 同意3楼意见,现在连主流板块都没人:mrgreen: 越来越冷清的代价大,还是开通一个冷清的板块大?抱着这种心态,论坛会加速关闭,别的论坛有外观,有服务,有投资,如何能比?不拿出点自己独特的东西,就会沦为大众货。
如果不转变观念,为用户着想,那么用户也不会为你着想。
现在发布问答信息的地方很多,为什么非要在这个地方发布呢?
如果连版主都不明白这个原因,就无话可说了。 回复 6# 104359176
这个版主。。。 是在说我吗。。。
首先。。。 要问我赞不赞成开通。。。 那肯定是赞成的。。。
反正。。。 除了动动嘴之外。。。 又没我什么事。。。
比如。。。 这个论坛增加一个版是否要改代码(比较搓的情况)? 还是只是在后台操作一下(比较好的情况)?后续要多少人管理或者增加现有管理人员的多少负担(又不是我发工资)?
其次。。。 前面只是估计一下状况而已。。。 这么激动。。。
如果是perl6或者是swift这样的语言我觉得还不好说。。。
对lisp板而言, 我觉得估计的很准, 所谓的惊喜不会出现。。。
要说为什么。。。因为lisp全体加起来也是小众语言。。。 newlisp本身是也是小众中的小众。。。
开通一个新的lisp板?http://bbs.chinaunix.net/thread-4086218-1-1.html 这是CU的C/C++板块的函数式编程子板块(CU就是这么分类的。。。)里一个3年前的帖子:
——你喜欢函数式编程?
——是啊。
——太好了我也是,你喜欢 Erlang 、Lisp 还是 Haskell ?
—— Lisp 。
——太好了我也是,你喜欢 Common Lisp 、Emacs Lisp 、Scheme 还是 Clojure ?
—— Scheme 。
——太好了我也是,你喜欢 MIT Scheme 、MzScheme 、DrScheme 还是 Guile ?
—— MIT Scheme 。
——太好了我也是,你喜欢 7.5 版还是 7.4 版?
—— 7.5 。
——滚!异端!
虽然可能没有上面这么严重, 将所有lisp合并在一个板块讨论肯定是有问题的。
就比如这个所谓的函数式编程的板。。。 提到函数式编程或者函数式编程语言, 有的人头脑里反应出的是javascript, 有的人头脑里反应出的是haskell。
你可以去看看那个板块里, 最近就有人问了一堆问题, “函数式编程里该怎么怎么怎么。。。” 这让人很难办啊。。。
就好比, 假设有了一个lisp板块, 有人来问一个“该怎么理解lisp里的宏”?
问的人他心里想的是一个lisp, 看的人们心里想很可能又是各种不同的lisp —— 比且newlisp, scheme, common lisp三者的宏的机制恰好又是完全不同的 —— 最终结果只能是:
1. 要么鸡同鸭讲一堆。。。
2. 要么泛泛而谈。。。
这个是将所有的lisp, 或者所有的函数式编程, 函数式编程语言放到同一个板块肯定会出现的问题。。。
那么。。。各自分开开一个板块? 本来就少的人就更分散了。。。
而且, 开哪几个板newlisp板? scheme板? common lisp板?
那racket要闹了, racket is not a scheme, 我们要单独划一个板讨论。
那用clojure的人不服气了, 凭什么不给我开?
picolisp是不是又有意见? 此处还可以插入各种lisp方言。。。
要论相对人气来开, 也肯定首先是scheme和common lisp而不会是newlisp。
说了半天。。。解决办法是什么? 这种小众语言该怎么找到大部队?
我不知道newlisp是啥情况, 就只说clojure, 那就只能是大部队去哪就跟着去哪。。。 google groups, irc, slack, ...
没有我在哪所以就应该把大部队也召集过来的道理。。。
最后。。。 关于版主。。。 你是不是觉得版主都是和CU是一伙的? 是CU内部的?
至少我不是的。。。 CU本部我都没去过。。。 我的发言也肯定不代表CU官方意见。。。
如果你觉得我不懂那些什么道理, 也只是我不懂, 不是CU不懂。。。
所以我才不想当个什么鬼版主嘛。。。 想撕个逼都不方便。。。 方言多,不是 Lisp 的错,也不是不能开设新论坛的原因。不同的方言,可以放在一起讨论,语法只是披在相同编程概念的不同风格而已。你是版主,比我草根强多了,你的意见相对我来说,更能让CU的管理者重视。
很多人因为 Lisp 方言众多,而放弃了学习这门优秀的语言。同等算法下,Lisp 相对最短。
如果一个函数设计的时候,可以接受多个参数。但在计算中,所得到的参数是以数组方式传递过来的,这个时候,如何把这些参数全部传递进去呢?
目前,我只有在 Perl6 和 Lisp 中找到解决方案:
Perl6:accpet-multi-args-func(~@array-list);Lisp:(eval (flat (list 'accept-multi-args-func @array-list) 1))Lisp 深入计算的核心,许多现代语言才有的特性,Lisp 程序员用模块就能实现。
方言多,争论多,不就是论坛兴旺的好办法吗?
有人说,想让10万程序员在一起争论,就大声宣布:PHP是世界上最好的语言。 104359176 发表于 2016-07-22 20:43 static/image/common/back.gif
所得到的参数是以数组方式传递过来的,这个时候,如何把这些参数全部传递进去呢?
你说的是这个功能吧。。。 newlisp:
> (+)
0
> (apply + '())
0
> (+ 1)
1
> (apply + '(1))
1
> (+ 1 2)
3
> (apply + '(1 2))
3
这个功能其实还是挺常见的: http://rosettacode.org/wiki/Variadic_function
在scheme, common lisp, emacs lisp, clojure里面它都叫apply。
common lisp和emacs lisp是lisp-2, 于是与lisp-1有区别了, 需要特殊的quote: (apply #'+ '(1 2 3))
scheme和clojure都是lisp-1, 但scheme的apply要求最后一个参数必须是list, 而clojure只要求最后一个参数是seq。
它们又都与newlisp的apply有区别。 newlisp的apply的参数个数是固定的, 两个, 第1个是函数, 第2个是传递给它的所有参数。
而其他4种lisp的apply参数个数是可变的, 至少是2个。
这就是我前面说的, 将这些lisp混在一起, 哪怕很小的一个方面(给Variadic function传递参数), 都会出现这些情况:
1. 泛泛而谈
类似于, 哦, 这个功能一般叫做apply, 在我平时用的lisp里是这样的, 你问的那个lisp你自己去查手册或者google一下吧。
2. 鸡同鸭讲
比如一个用lisp1的人问, 而回答的人好心的把代码贴出来, 但这个人心里想的卻是一个lisp-2, 于是(apply #'+ '(1 2 3)) 肯定会在newlisp与scheme里出问题。
3. 浮于表面
(apply #'+ '(1 2 3)) 虽然是lisp-2的典型写法, 然而在clojure里面它恰好不会出问题。 但这不是clojure里的典型/习惯(idiomatic)用法。
用apply的参数个数不同造成的影响举例:
3.1 问的人用的是newlisp, 回答的人告诉它 (apply f x1 x2 (list x3 x4 ...)) 等效于 (f x1 x2 x3 x4 ...) ,那问的人肯定会有一天要出错, 因为newlisp里面apply只接受两个参数。
比如这还算好的, 出了错他就知道newlisp里的apply有不同了。
3.2 反过来的情况更糟糕。 问的人用的是lisp-1, 回答的人用的是newlisp, 并且给问的人造成一种apply只能接受2个参数而且第2个必须是list的印象。
于是有些情况下, 他就会写成 (apply f (cons a (cons b xs))) , 而不是idiomatic的(apply f a b xs)。
So。。。 我感觉CU是不可能会为各种lisp单独开板的。。。
CU也许可能会为lisp一起开个板。。。但这种混合社区很有可能吃到“二手肉”。。。 不管是对提问的人还是回答的人来说, 都是浪费时间。。。
这种混合板上发布点各种lisp甚至新的lisp方言这种消息还是不错的。。。
真要想学好这种小众语言, 去各自的社区混才是王道。。。
PS: 对这个需求来说用eval太过了。。。 104359176 发表于 2016-07-22 20:43 static/image/common/back.gif方言多,不是 Lisp 的错,也不是不能开设新论坛的原因。
确实不是lisp的错。 也不是不能开新论坛的原因。
该不该开新板块, 那是CU自己应该做的决策。
我只是觉得, 哪怕开了, 也没什么用。。。
104359176 发表于 2016-07-22 20:43 static/image/common/back.gif不同的方言,可以放在一起讨论,语法只是披在相同编程概念的不同风格而已。
存在一类程序员, 他们会很多编程语言, 但写出来的程序都大同小异。 所谓用自己的思想去驾驭编程语言的那一类?
比如“开发ios(android)要用objc(java)?” 那就学呗, 怎么定义变量, 怎么分支, 怎么循环, 怎么写函数。。。然后就可以开始编程了。
但这类程序员都不会有事没事去学lisp的吧。。。 学来干嘛。。。 又没太多这种非lisp不可的工作。。。
如果不学透彻点。。。 还不如去学主流语言呢。。。
104359176 发表于 2016-07-22 20:43 static/image/common/back.gif你是版主,比我草根强多了,你的意见相对我来说,更能让CU的管理者重视。
都是草根。。。最多草根围观者和草根志愿者的区别而已。。。
104359176 发表于 2016-07-22 20:43 static/image/common/back.gif很多人因为 Lisp 方言众多,而放弃了学习这门优秀的语言。
我觉得放弃lisp的最大原因是(((((())))))吧。。。
你看类C语法的语言这么多, c++, java, c#, javasript, go... 它们不都挺火的么。。。
104359176 发表于 2016-07-22 20:43 static/image/common/back.gif很多人同等算法下,Lisp 相对最短。
这个还是不要这么说。。。 免得撕·逼。。。。
104359176 发表于 2016-07-22 20:43 static/image/common/back.gif
方言多,争论多,不就是论坛兴旺的好办法吗?
撕·逼一时爽。。。 但感觉最终用处不大。。。
兴旺倒可能是兴旺。。。。