V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  no1xsyzy  ›  全部回复第 220 页 / 共 267 页
回复总数  5322
1 ... 216  217  218  219  220  221  222  223  224  225 ... 267  
2019-07-23 12:29:37 +08:00
回复了 jiangwei2222 创建的主题 程序员 想练习英文文档翻译能力,翻译点什么好呢?
我上面太特指了,总之 transifex 上找找吧
2019-07-23 12:29:09 +08:00
回复了 jiangwei2222 创建的主题 程序员 想练习英文文档翻译能力,翻译点什么好呢?
2019-07-23 12:28:15 +08:00
回复了 beryl 创建的主题 程序员 有必要主动去帮同事处理问题么?
IRC 频道通常都会明确地说:不要寒暄,直入正题
当然你寒暄几句也没关系,就是没人会在意你进行了寒暄
对寒暄无反应其实大多数论坛都这样,发贴 “大家好,我是 ABC,XXXXXXX ” 没人会回 “你好,ABC,YYYYY ” 的
2019-07-23 12:25:33 +08:00
回复了 beryl 创建的主题 程序员 有必要主动去帮同事处理问题么?
@beryl 黑客的一环不就是任何时间任何地点可以在任何讨论中插嘴吗?
2019-07-23 11:34:28 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Kulics 5. 你要让人眼能 parse 必然要让相似形状具有相似含义。
不然这神经网络也太复杂了,人脑在无法作出有效预测的情况下会升级神经网络尺寸是没错(虽然实际上工作方式并不是扩大尺寸),但这还是给自己添加负担,越大越慢也越耗能。
既然你把 ->@ 作 continue,不如 -> 作 break
break 只会出现在 @{} 的块里,应该不太会歧义为 Lambda,无论是 syntaxer 还是 人眼
6. 行我明白 var 不是 auto 了,不过你这也不是推导啊,就是个判断。
你没有清楚地说明比如给定
函数 apply: forall (a:Type, b:Type). (a->b)->a->b
函数 format: Str->Num->Str
变量 x: Num
变量 form: Str
如何得知 apply(format(form), x) 的类型是 Str 的。
需要更多指示才能明确是有类型推导的。
2019-07-22 18:12:01 +08:00
回复了 gbcbooks 创建的主题 Linux wine+企业微信的体验
@stardust21 是不是泄漏?比如指望着某种 Windows 的调度任务生命周期,结果 Wine 没有实现这一方面,结果就导致越跑越慢,因为每次都要扫一遍很长的调度任务列表?
纯猜想,对 Windows 编程不熟。
2019-07-22 18:04:23 +08:00
回复了 dyc87112 创建的主题 程序员 为什么不同媒体报道的编程语言排行榜结果不一样?
@greatdancing 因为最好的语言不是 PHP,是……
2019-07-22 14:52:31 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Kulics 1. 我没有觉得 Lite 能算静态语言,反而我变得觉得 C++ C# go 也不能算——虽然也都不能算动态语言,这两者中间可以有其他的种类。编译期你连对象实例是否拥有某个方法都不能确定,instance.method(params) 会执行哪个代码你都不知道。
2. 请重新看一下 operator 是什么意思。如果你的 ?@!{} 能算操作符,那么 operand 在哪?还是说你的 {} 其实是代码块一类的东西?关键 “字” 不是指字母。操作 “符” 不是指符号。`and` 也可以是操作符,`?` 也可以是关键字(比如 powershell 的 ? % 两个关键字(是内建 “别名”,可以被覆盖))
3. 用轮子的前提是你能够实现一个的时候偷懒,而不是不能的时候跃进。
5. 填空:@ 是循环 <-@ 是退出循环,正如 _____ 是函数,<-value 是退出函数。
#95 不是你推导完一圈又回到 var 到底和不推导有什么区别啊……
2019-07-22 00:59:32 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Kulics #24 对了说起敲键盘的速度,我就是因为全拼太慢所以换的双拼。
如果说敲键盘不能和脑子同步并形成肌肉记忆的话就是拖脑子后退,打乱思路。
所以用 begin 比 { 好,end 比 } 好。
2019-07-22 00:50:49 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Kulics 另外,你那个 demo 我看了半天自动推导都是交给 C# 的 var 关键词?
2019-07-22 00:39:34 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Kulics #84 如果说推导就能解决的话就根本不需要判断类型,因为编译期就能明确该变量是什么类型。C# 或者 go 的大致是用于接口、泛型、Variant、Union、继承或者 C++ 模版,这时常常已经无法编译期判断数据类型了。在我看来,C++ 因为虚函数和多态的存在也是介于静态和动态之间的东西。因为个人对 M$ 的偏见,没用过 C#,随便搜了一下,不知真假: https://www.runoob.com/csharp/csharp-polymorphism.html#override
#85 所以说那只是表象,你还是没理解 pascal.h 的意义,我亲眼见过写惯了 Pascal 的去写 C 先引入几个 define 把 begin end 给变成花括号对的。对 C 来说花括号对 “{” 和 “}” 是不是关键字呢?至少在用 pascal.h 的人看来绝对是。
操作符和关键字也不冲突,比如 Pascal 和 Python 的 and 以及 or。
lexer 和 syntax 并不会区分拉丁字母作关键字或者符号作关键字,都是关键字,对它来说还是字节流或者字符流,看你的 lexer 好像用的现成的轮子,也难怪。
还有,你说没说错和是目的还是结果没什么联系。
#86 我是说直观上的,你这样把 <-@ 当作 break 是真的非常奇怪的结构。虽然确实应该按大嘴法,<-@ 是一个整体,但这一形式上的一致不可避免地让我感觉到这是 continue ……另一方面,看到 @ 的话总会觉得至少行为应该和 @ 所在的位置有所关联,而不是隔了十万八千里的对应 } 处。
另外,确实只需要 “学” lisp 就够了(指 SICP ),其他的不过稍微练习就行。连 Erlang 的消息驱动和微服务架构我都看 SICP 的时候重新发明了一遍。遗憾的是因为老爷子去世我才仔细了解到 Erlang 的消息驱动 Actor 式异步。连快速失败进程重启都发明了半遍(做得不完整,完全就是因为我做成消息拉动代码执行外加异常处理也是将异常作为消息抛到另一个信道上)。
@Immortal 可以利用上缓存啊。
另一方面,甚至可以通过 “专业词库” 这种东西再做一次分层。
甚至通过一定的筛法,最后每篇文章可以调用 3-5 个字体来解决。

另外大概还有一种就是生成 SVG,不清楚是否可以复制一个字形,可以的话只要形成一些字形然后复制就行。
2019-07-21 22:36:09 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@luopengfei14 写语言没什么牛逼的,任何一个复杂、通用的项目就是设计一个新语言,只不过不一定是图灵完备的,可能不过是写出一种配置语言的实际用途。
你可以说 grep 正是写一种语言,其词法语法符合正则表达式,同时其作用是向某个文件寻找所有符合该正则表达式的行。
正如格林斯潘第十定律:任何 C 或 Fortran 程序复杂到一定程度之后,都会包含一个临时开发的、不合规范的、充满程序错误的、运行速度很慢的、只有一半功能的 Common Lisp 实现。
2019-07-21 22:25:37 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
另外一个,<-@ 对我来说更像是 continue
(function @() {
doSomething();
if(sometimes()){
return @()
}
doRest();
return @()
})()
@ 是一个函数名,并且调用函数不需要括号(像 ruby 或者很多 shell )的话,return @() 就是在 call 自己,符合尾调死循环的 continue 等价物。
2019-07-21 22:19:12 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Kulics #58 我指的是你原文的 “通过去除关键字”,实际上你并没有去掉哪怕一个。
何况问号 “?” 本身完全可以被设定为可用于标识符的字符。是问号、叹号还是 if 并没有什么区别。
函数名 equal? null? bool? str?
(defmacro ? c `(case ,@c))
这样的语法糖我一分钟能写 26 个。
不过如果要写 26 个我会先写个语法糖 (defmacro sweet (orig new) (let ((c (gensym))) `(defmacro ? ,c `(case ,@,c))))
2019-07-21 21:49:04 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@Kulics 本来 Variant / Union 类型就是处于动态和静态中间的。
要觉得 Variant 也能算静态类型,你怎么不说 Python 就是个类型是 any/c 的静态类型?它也能 annotation 写类型标记,有了这类型标记也能写个 linter。
2019-07-21 14:52:12 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@pisc “核心体验” 而不是 “实现核心” 或者 “核心思想”
@Immortal #8 不一定每个页面打包一份,可以把常用字的打一个,然后每个页面在此基础上新增。
2019-07-21 14:06:55 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
@secondwtq 其实如果区分左值和右值的话最新 ES 就已经基本符合了,甚至 'a':a 可以被糖成 a。
不区分左右就必然是函数式或者类函数式,不然的话 a,b,c = b,c,a 有歧义。
区分的话不能 {'type':'addValue', 'content':value_to_add, 'received':true} = msg 这样做双向传递了
if(msg['type']=='addValue'){value_to_add=msg['content'];msg['received']=true}
不过可以
[{'type':'addValue', 'content':value_to_add}|msgq] = msgq // 如果第一个消息类型是 addValue 就会被提取并移除。
各有好坏吧。
2019-07-21 13:46:46 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
另外,看 spec 的结论是和 go 一样强制 “{” 在前一行行尾不得新行
还有,你说这是静态语言?为什么会有判断类型的语法?
https://github.com/kulics/lite/blob/master/book-zh/document.md#%E6%A8%A1%E5%BC%8F%E5%8C%B9%E9%85%8D
1 ... 216  217  218  219  220  221  222  223  224  225 ... 267  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2057 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 63ms · UTC 15:20 · PVG 23:20 · LAX 08:20 · JFK 11:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.