🐦 #statement #cs 不能轻视任何一个人,因为他们都有你所没有过的经历,做到过你未曾做到的事情
我就是一个喜欢发现的人,从不听「智商决定论」。世界上没有智商高了就能自动覆盖的技巧和领域,只要经历过就是价值。
我就是一个喜欢发现的人,从不听「智商决定论」。世界上没有智商高了就能自动覆盖的技巧和领域,只要经历过就是价值。
parser-combinator-koans #parser #cs #functional 🤔就是难以理解传来传去的 pure parser(CP -S style)...
interface Parser<out T> { fun parse(input: Input): Output<T>? }
data class Output<out T>(val payload: T, val nextInput: Input)
data class Input(val value: String, val offset: Int = 0) {
val unprocessed = value.substring(offset)
fun consumed() = copy(offset = value.length) // 改 offset 处理完了调用下
}#Kotlin #lib #recommended #functional 小值/验证 IO 库
https://github.com/fork-handles/forkhandles/tree/trunk/values4k#show
这个作者感觉可以,尤其是他也很重视程序的一致性(对称性)
In order to maintain symmetry (and to ensure that we can support inline classes), this method is present on the
Little strange but actually consistent because the display and parse logic should NOT be part of the Value itself, but be separated logically.
像
可以手工验证但这不好看,根本解决方法是定义并引用新类型
原来 Factory 在 Kotlin 的标准是
https://github.com/fork-handles/forkhandles/tree/trunk/values4k#show
这个作者感觉可以,尤其是他也很重视程序的一致性(对称性)
In order to maintain symmetry (and to ensure that we can support inline classes), this method is present on the
ValueFactory instance.Little strange but actually consistent because the display and parse logic should NOT be part of the Value itself, but be separated logically.
像
fun transferMoneyTo(amount: Int, sortCode: String, accountNumber: String) 是不安全的,因为它有 Int,String 值但值无格式(如非负数什么的)可以手工验证但这不好看,根本解决方法是定义并引用新类型
inline class SortCode(override val value: String): Value<String>尤其是可以 inline (新 Kotlin 限定),然后这种方法强化的类型(格式)安全还可以保证
toString() 时把密码码掉什么的(取原值就用 SortCode.show(c) 了)。class Money private constructor(value: Int) : AbstractValue<Int>(value) {
companion object : ValueFactory<Money, Int>(::Money, 1.minValue)
}
class AccountNumber private constructor(value: String) : StringValue(value) {
companion object : StringValueFactory<AccountNumber>(::AccountNumber, "\\d{8}".regex)
}
然后就可以 Money.parse("123"), Money.of(123), Money.of(0)/*throw IAE*/, ofOrNull, ofResult4k/*库自定Result<T>类型*/ 这样原来 Factory 在 Kotlin 的标准是
ofXXX(_) 😋 很好看GitHub
fork-handles/forkhandles
Foundational libraries for Kotlin. Contribute to fork-handles/forkhandles development by creating an account on GitHub.
duangsuse::Echo
你觉得,拼音缩加入新汉语写好不好?
#mohu #china 守好语言文字。 https://mohu.rocks/question/14286
能不能好好说话? itorr/nbnhhsh 🤨
之前还重写了个 https://t.me/dsuse/12946
别进入大jb(举报)时代,不要靠sm(算命),虽然墙语缩写是dssq(大势所趋),我们作为jwsl(境外势力)也坚决不能上流行文化jc的,保持rp,gmzd(光明正大)地说中文,写规范方块字!
草这个tmd网络世界我真的太恨缩写了。
随便点开一条微博,艺人名字要缩写,gzs工作室也要缩写,gc广场他妈的也是缩写,hgr老子猜了老半天,百度一下才知道是韩国人,拳头硬了。
讲个话开头也缩写,srds虽然但是,yjgj有句港句,bbl求求了。(这个谁看得出来你妈的)
夸人骂人也都缩写,yjjc一骑绝尘,wdcc弯道超车,yygq阴阳怪气,myss美颜盛世,rnb我也猜了半天,最后被告知是really牛b的意思,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈又硬了呢。
最要命的还不是这些,我刚刚看到网友评价什么什么他jb的什么,我以为jb就是jb的意思吧,但联系上下文句子又读不通,想了一分钟,哇,原来jb是姜滨的缩写啊!
jb=姜滨,我离开了。 😑
能不能好好说话? itorr/nbnhhsh 🤨
之前还重写了个 https://t.me/dsuse/12946
别进入大jb
草这个tmd网络世界我真的太恨缩写了。
随便点开一条微博,艺人名字要缩写,gzs
讲个话开头也缩写,srds
夸人骂人也都缩写,yjjc
最要命的还不是这些,我刚刚看到网友评价什么什么他jb的什么,我以为jb就是jb的意思吧,但联系上下文句子又读不通,想了一分钟,哇,原来jb是
jb=姜滨,我离开了。 😑
#build https://paste.ubuntu.com/p/xbfhXZscvw/ 草,就用 IDEA 的模板 maven kotlin 项目了…… 感觉还挺快的,唉,暂时抛了 Gradle 了,但 Kotlin compiler 还是最新 1.4
用的阿里云 mirror ,不用编译器 40M jar 啊
Maven 连 coordinates 都不支持,XML 真的太长了,写个 mvng 脚本显然是增量更新项目xml 也要能做到了,最开始说好20行内呢,唉…… 😩 #Python
用的阿里云 mirror ,不用编译器 40M jar 啊
Maven 连 coordinates 都不支持,XML 真的太长了,写个 mvng 脚本显然是增量更新项目xml 也要能做到了,最开始说好20行内呢,唉…… 😩 #Python
Forwarded from RWTG9Y4's STDOUT
填了填两年前的坑, 现在这玩意可以自动输入 Steam Guard 了, 一键登录
(其实是 NUC 上只装了触摸屏, 我懒得每次都跑去输一遍 Steam Guard 就把这玩意翻出来修了修
https://github.com/fengberd/SteamLoginManager/commit/f51997ad608d7d75e07098e3535ae8ff564c7505
(其实是 NUC 上只装了触摸屏, 我懒得每次都跑去输一遍 Steam Guard 就把这玩意翻出来修了修
https://github.com/fengberd/SteamLoginManager/commit/f51997ad608d7d75e07098e3535ae8ff564c7505
duangsuse::Echo
#build https://paste.ubuntu.com/p/xbfhXZscvw/ 草,就用 IDEA 的模板 maven kotlin 项目了…… 感觉还挺快的,唉,暂时抛了 Gradle 了,但 Kotlin compiler 还是最新 1.4 用的阿里云 mirror ,不用编译器 40M jar 啊 Maven 连 coordinates 都不支持,XML 真的太长了,写个 mvng 脚本显然是增量更新项目xml 也要能做到了,最开始说好20行内呢,唉…… 😩 #Python
#Java #build 😫 结论:体验极差 凸显Gradle 优点 https://bintray.com/fork-handles/maven/forkhandles-bom 不能把 repository 放 pom 里,必须在 settings.xml 里写成 profile 形式... 显然多 repo 就极其不方便,BinTray 的发布又是单用户单命名空间形式,显然是一个 dep 要加一项,许多项目并没有提供用户 settings.xml,而 BOM(base pom) 依然需要加源后下载! Java 的库发布实在是让人无话可说
https://www.microsoft.com/en-us/research/uploads/prod/2021/01/GIF_LAMBDAS.gif
#microsoft #windows #ce #plt #tech 之前 Office Excel 不能的其实是写出不停机(non terminating, 如死循环)的程序吧… 其实如果已经提供了基于表达式语言的函数,理论也早图灵完全了,这
一拨简直是蹭流量。去年 12 月的事情
也就是说现在仍只支持常量定义,以及标量(数字/真假/字符串)值,不支持聚合量么 😒 我觉得首先应优化性能吧...电子表格而已,但新特性也可能带来新生态
这一波几乎没有语法上的变更, M$ 的命名分词语义还是像以前那样烂(真不知道他们那么左是怎么维护项目的 好吧虽然这是 Excel 🤨
等价
#microsoft #windows #ce #plt #tech 之前 Office Excel 不能的其实是写出不停机(non terminating, 如死循环)的程序吧… 其实如果已经提供了基于表达式语言的函数,理论也早图灵完全了,这
一拨简直是蹭流量。去年 12 月的事情
也就是说现在仍只支持常量定义,以及标量(数字/真假/字符串)值,不支持聚合量么 😒 我觉得首先应优化性能吧...电子表格而已,但新特性也可能带来新生态
这一波几乎没有语法上的变更, M$ 的命名分词语义还是像以前那样烂(真不知道他们那么左是怎么维护项目的 好吧虽然这是 Excel 🤨
=LAMBDA( X, Y, SQRT( X*X+Y*Y ) )
=LAMBDA( X, Y, LET( XS, X*X, YS, Y*Y, SQRT( XS+YS ) ) ) 等价
(x,y)=>Math.sqrt(x*x+y*y) 好像是勾股定理吧(x,y)=> { let xs=x*x, ys=y*y; return Math.sqrt(xs+ys); } 😨 #functional 做这个的人脑子怕不是有毛…病, xs 和 ys 里 -s 是随便乱叫的?!xx 数学并列就能叫 xs 什么鬼?Forwarded from Solidot
Excel 现在具备了图灵完备性
2021-02-01 20:19 #Windows
微软称它的电子表格程序 Excel 是一种编程语言,通过引入 LAMBDA,Excel 现在具备了图灵完备性。
如果一种编程语言可以实现任何可能的算法,那么它就具备了图灵完备性。微软剑桥研究院的 Calc Intelligence 项目与 Excel 团队合作,将电子表格公式转变成一种全面的编程语言。Excel 有两大缺点阻碍它成为真正的编程语言:其一是公式语言只支持数字、字符串和布尔值等标量值,其二是不支持定义新函数。去年 12 月微软宣布了 LAMBDA,允许用户使用 Excel 的公式语言定义新的函数——它被称为 LAMBDA 定义的函数。通过 LAMBDA,Excel 具备了图灵完备性,在理论上可以用 Excel 的公式语言写任何计算。LAMBDA 目前提供给了 Beta 测试用户。
2021-02-01 20:19 #Windows
微软称它的电子表格程序 Excel 是一种编程语言,通过引入 LAMBDA,Excel 现在具备了图灵完备性。
如果一种编程语言可以实现任何可能的算法,那么它就具备了图灵完备性。微软剑桥研究院的 Calc Intelligence 项目与 Excel 团队合作,将电子表格公式转变成一种全面的编程语言。Excel 有两大缺点阻碍它成为真正的编程语言:其一是公式语言只支持数字、字符串和布尔值等标量值,其二是不支持定义新函数。去年 12 月微软宣布了 LAMBDA,允许用户使用 Excel 的公式语言定义新的函数——它被称为 LAMBDA 定义的函数。通过 LAMBDA,Excel 具备了图灵完备性,在理论上可以用 Excel 的公式语言写任何计算。LAMBDA 目前提供给了 Beta 测试用户。
Forwarded from Programmer Humor
#algorithm 无聊的 sort topN 算法题 https://t.me/Javaer/556214
Telegram
Leonhard Euler in Java 编程语言
话说我司有很多用户,注册用户数大概在几十亿的规模吧,毕竟我们面向全世界70亿人口服务,而且还有人注册多个账号, 所以,我们的用户id使用一个64位的整形来存储。
上个月,我司脑抽搞了个送钱的互动,导致大量的羊毛党刷活动。所以这月,运维小哥把活动日志拉了下来。 互动日志有两列 {id, money} 分别是参与活动的用户id和在本次请求中薅到的羊毛数量, 本次活动每个用户可以发起多次请求。
大领导认为, 薅钱数目前 200 名的用户是羊毛党,我们要封禁它们。
请你依据这个日志, 获得薅钱数目前200名的用…
上个月,我司脑抽搞了个送钱的互动,导致大量的羊毛党刷活动。所以这月,运维小哥把活动日志拉了下来。 互动日志有两列 {id, money} 分别是参与活动的用户id和在本次请求中薅到的羊毛数量, 本次活动每个用户可以发起多次请求。
大领导认为, 薅钱数目前 200 名的用户是羊毛党,我们要封禁它们。
请你依据这个日志, 获得薅钱数目前200名的用…
https://t.me/Javaer/556285
#Python #algorithm 看讨论的方向是简单实现就写了两个,最后 #oi 大佬还来抒发了一下见解
topk 就是 n 个数据取降序 k 项,这里提供 MapReduce(某种负载均衡,子集归并排序)、选择排序 俩算法。(因为我就会 选择/插入/冒泡/快速 四种排序算法了……)
空间复杂度: O(k*k), O(1)
时间复杂度: O(baO(k*baO(n/k))) 其中 baO 为 sort() 复杂度, O(k*n)
其实前者的归并(topz)法也有更好的版本,原来需要
好吧,如果连续两子表头相等,就只能加全它俩了(断言不了整体大小的关系),所以看来这个“优化”有没有价值还另说。
#Python #algorithm 看讨论的方向是简单实现就写了两个,最后 #oi 大佬还来抒发了一下见解
topk 就是 n 个数据取降序 k 项,这里提供 MapReduce(某种负载均衡,子集归并排序)、选择排序 俩算法。(因为我就会 选择/插入/冒泡/快速 四种排序算法了……)
空间复杂度: O(k*k), O(1)
时间复杂度: O(baO(k*baO(n/k))) 其中 baO 为 sort() 复杂度, O(k*n)
其实前者的归并(topz)法也有更好的版本,原来需要
xxs[0:n] (已排序子表的前 n 项,注意整体合并完就是 n 项)的,实际上可以按 xxs[0] 排序一遍,再定一个集合,直到 key(xx) 填满 n 项取子表头一项 append 到 tops 即可。(划掉)好吧,如果连续两子表头相等,就只能加全它俩了(断言不了整体大小的关系),所以看来这个“优化”有没有价值还另说。
Telegram
duangsuse in Java 编程语言
https://pastebin.ubuntu.com/p/QWSPb4ckKn/
我就直接写了这两个版本的,感觉也没啥需要注意的,易写
我就直接写了这两个版本的,感觉也没啥需要注意的,易写