实在是没有那个力气开几个理论向学习,因为定理证明、PL 理论那些已经够累了... 代数程序逻辑依然在学,反正理论向都是均衡发展但都很薄弱就是了
现在具体来讲就是 The Little Schemer 终于熟悉了一点这个列表处理语言... 不过我觉得还是 Haskell 好,因为 Haskell 更符合直觉(看很多用 Haskell 讲程序分析的论文就知道),Scheme 一类的一大堆
具体就是(拿 foldr 和 foldl 举个例子)
Haskell 里(比较简单比较符合那些面向程序分析变换的方式,没有 Foldable、Functor 什么的 class,也是因为我没好好学过 Haskell,羞愧)
而我们用 Scheme 翻译一下原来简单直观的代码瞬间变成了乱码(这里就没加类型,因为我没试过有静态类型系统的 Scheme 实现):
不要停下啊(指乱码)
而且像这种(universality property of fold operator)拿 Scheme 表示就彻底... 彻底(暴论
请善用模式识别。高中生数学科目必须要会的技能
reverse [] = [] (其实 reverse [_] 来匹配只有一项的列表也可以,我觉得是这样)
reverse (x : xs) = reverse xs ++ [x]
⇔
reverse xs ++ [x] =
定理证明现在勉强理解了一下
现在具体来讲就是 The Little Schemer 终于熟悉了一点这个列表处理语言... 不过我觉得还是 Haskell 好,因为 Haskell 更符合直觉(看很多用 Haskell 讲程序分析的论文就知道),Scheme 一类的一大堆
car cdr 让不让人活了具体就是(拿 foldr 和 foldl 举个例子)
Haskell 里(比较简单比较符合那些面向程序分析变换的方式,没有 Foldable、Functor 什么的 class,也是因为我没好好学过 Haskell,羞愧)
foldr :: (a -> r -> r) -> r -> ([a] -> r)当然,上面的都是 point-free 风格(两边约掉一个参数)(现在你们知道啥叫程序变换了吧?),which 曾经被淫王喷的,因为不直观(实际上他也喷
foldl :: (a -> r -> r) -> r -> ([a] -> r)
foldr f v [] = v
foldr f v (x : xs) = f x (foldr f v xs)
foldl f v [] = v
foldl f v (x : xs) = foldl f (f v x) xs
reverse :: [a] -> [a]
reverse = foldl (\xs x -> x : xs) []
map :: (a -> b) -> ([a] -> [b])
map f = foldr (\x xs -> f x : xs) []
length :: [a] -> Int
length = foldr (\_ n -> n + 1) 0
fold 这种递归模板的,实在是不够直观),不过我是为了讲这个专门举的例子求不喷。而我们用 Scheme 翻译一下原来简单直观的代码瞬间变成了乱码(这里就没加类型,因为我没试过有静态类型系统的 Scheme 实现):
(define fold-right一 瞬 混 乱
(lambda (f v l)
(cond
((null? l) v)
(else (f (car l) (foldr (cdr l)))))))
(define fold-left
(lambda (f v l)
(cond
((null? l) v)
(else (foldl f (f v (car l)) (cdr l))))))
(define foldr
(lambda (f v)
(lambda (l) (fold-right f v l))))
(define foldl
(lambda (f v)
(lambda (l) (fold-left f v l))))
(define reverse
(foldl
(lambda (xs x) (cons x xs)) '()))
(define map
(foldr (lambda (x xs)
(cons (f x) xs)) '()))
(define length
(foldr (lambda (_ n)
(add1 n)) 0))
不要停下啊(指乱码)
而且像这种(universality property of fold operator)拿 Scheme 表示就彻底... 彻底(暴论
请善用模式识别。高中生数学科目必须要会的技能
g [] = v⇔
g (x : xs) = f x (g xs)
g = fold f ve.g. reverse 函数
reverse [] = [] (其实 reverse [_] 来匹配只有一项的列表也可以,我觉得是这样)
reverse (x : xs) = reverse xs ++ [x]
⇔
reverse = fold f v
where f = (\x xs -> xs ++ [x])
v = []
步骤(推算出 f)大概就是 (g xs) 换成 xs...g (x : xs) =f x (g xs)
reverse (x : xs) = reverse xs ++ [x]reverse xs ++ [x] =
((++) (reverse xs) [x])
参数顺序不对,再加层 lambda 表示法就可以了(定理证明现在勉强理解了一下
rev (rev v) = v 这种,所谓的『更小规模』的证明 forall a v. rev (v ::r a) = a :: rev v 也能勉强理解了,看了证明思路也有,但是还不会写,rewrite 归纳证明比较符合直觉(拿 xs 递归解决什么的...)然后 Agda 总算是看得懂了(我不知道写了多少遍那几个例子才,,,)This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse::Echo
实在是没有那个力气开几个理论向学习,因为定理证明、PL 理论那些已经够累了... 代数程序逻辑依然在学,反正理论向都是均衡发展但都很薄弱就是了 现在具体来讲就是 The Little Schemer 终于熟悉了一点这个列表处理语言... 不过我觉得还是 Haskell 好,因为 Haskell 更符合直觉(看很多用 Haskell 讲程序分析的论文就知道),Scheme 一类的一大堆 car cdr 让不让人活了 具体就是(拿 foldr 和 foldl 举个例子) Haskell 里(比较简单比较…
顺便说一下,王垠(其实我知道我不应该老是提他,而且相信大家有很多人都只知道王垠,因为很多人在吹他,然后这里面有些人就连轮子哥、Rednaxelafx 大、三锋都不知道)(其实知道又怎么样,你们不会看他博客的...)喷一些人是
其实嘛,我想了一下发现我自己就有点这个意思,不过我是搞得懂
我对王垠真的是没有什么看法,和大家一样,都只是相对客观的就事不就人评价而已
不过我绝对不会把他当成偶像什么的去膜拜,在我看来他是大佬,但就如他的博客名当然我在扯淡一样,我不知道他到底哪些东西会不会是在扯淡,在跟你们开玩笑
当然我就他所展示的经历而言非常羡慕出国留学的经历。就这样。That's all
#dev 能做应用层的人也就是永远只会去做应用层吧... 因为你们对这些不感兴趣,也没什么,扯不到什么优秀不优秀上面去,各有所好而已(其实也不然,我发现很多老一点的程序员后来都会从脚本小子步入理论或者更底层的工程,看你们的性格了)
不过是我游戏都懒得玩成天弄这些东西,然后你们放松就是玩 Ingress、然后其他游戏什么的... 玩 Android 的也有,我也非常喜欢玩 Android #CoolApk #GeekApk (当然别喷这个了,都过气了)(再者,士别三日即更刮目相看,我已经不是 18 年的我了)
当然也有人喜欢用自己应用、看自己应用得奖、发展,卖到钱时候的成就感,喜欢和自己的用户插科打诨,有人只是单纯喜欢写应用,或者喜欢练习写应用,反正都没什么的,各有所好。
这个 foldl 就是 foldLeft,Kotlin 里当然也有(说明 Kotlin 其实也蛮函数式的,删除)(因为是废话啊)(Kotlin 显然比 Java 8 什么的更函数式,当然 Java 9 比 8 其实变化不大,主要还是方法本地变量支持类型推导不用明写了)(所以冰封哥会说垃圾 Jawa)
(当然我还赶不上去年他的水平,我都不知道他到底上不上学... 怎么就有这么多时间拿来玩这些东西,真 TM 是好知者不如乐知者)(看看这篇 Agda 教程博文,还是他讲『简单』东西的,然后 2017 的他写的 9012 年的我都看不太懂)(成都的学校都这么优秀么,这还有没有天理了...)(好吧,就是比你优秀,不服拉黑...)
(我可没有这么智障,不服拉黑什么的)(那可真是智障)(接下文)
fold 都不知道是什么就在那瞎用其实嘛,我想了一下发现我自己就有点这个意思,不过我是搞得懂
foldr 然后暂时搞不懂 foldl
当然,对一些比较崇拜淫王的人来说(其实我现在因为选择了放松一点自己这方面发展就没有那么神经质了(之前我总是觉得会有 #Android 开发的前端来喷我,现在不会有这种臆想了我对王垠真的是没有什么看法,和大家一样,都只是相对客观的就事不就人评价而已
不过我绝对不会把他当成偶像什么的去膜拜,在我看来他是大佬,但就如他的博客名当然我在扯淡一样,我不知道他到底哪些东西会不会是在扯淡,在跟你们开玩笑
当然我就他所展示的经历而言非常羡慕出国留学的经历。就这样。That's all
#dev 能做应用层的人也就是永远只会去做应用层吧... 因为你们对这些不感兴趣,也没什么,扯不到什么优秀不优秀上面去,各有所好而已(其实也不然,我发现很多老一点的程序员后来都会从脚本小子步入理论或者更底层的工程,看你们的性格了)
不过是我游戏都懒得玩成天弄这些东西,然后你们放松就是玩 Ingress、然后其他游戏什么的... 玩 Android 的也有,我也非常喜欢玩 Android #CoolApk #GeekApk (当然别喷这个了,都过气了)(再者,士别三日即更刮目相看,我已经不是 18 年的我了)
当然也有人喜欢用自己应用、看自己应用得奖、发展,卖到钱时候的成就感,喜欢和自己的用户插科打诨,有人只是单纯喜欢写应用,或者喜欢练习写应用,反正都没什么的,各有所好。
这个 foldl 就是 foldLeft,Kotlin 里当然也有(说明 Kotlin 其实也蛮函数式的,删除)(因为是废话啊)(Kotlin 显然比 Java 8 什么的更函数式,当然 Java 9 比 8 其实变化不大,主要还是方法本地变量支持类型推导不用明写了)(所以冰封哥会说垃圾 Jawa)
(当然我还赶不上去年他的水平,我都不知道他到底上不上学... 怎么就有这么多时间拿来玩这些东西,真 TM 是好知者不如乐知者)(看看这篇 Agda 教程博文,还是他讲『简单』东西的,然后 2017 的他写的 9012 年的我都看不太懂)(成都的学校都这么优秀么,这还有没有天理了...)(好吧,就是比你优秀,不服拉黑...)
(我可没有这么智障,不服拉黑什么的)(那可真是智障)(接下文)
duangsuse::Echo
顺便说一下,王垠(其实我知道我不应该老是提他,而且相信大家有很多人都只知道王垠,因为很多人在吹他,然后这里面有些人就连轮子哥、Rednaxelafx 大、三锋都不知道)(其实知道又怎么样,你们不会看他博客的...)喷一些人是 fold 都不知道是什么就在那瞎用 其实嘛,我想了一下发现我自己就有点这个意思,不过我是搞得懂 foldr 然后暂时搞不懂 foldl 当然,对一些比较崇拜淫王的人来说(其实我现在因为选择了放松一点自己这方面发展就没有那么神经质了(之前我总是觉得会有 #Android 开发的前端来喷我,现在不会有这种臆想了…
(看了那个博文那个章节后突然发现说得好啊,而且可见王淫还是蛮有水平的(废话)
其实我刚才说的弄不懂是我在吃饭的时候考虑了一下拿
Haskell(Scheme 的太长不复制了)
这里用
而且,FoldLeft 可以尾递归优化成循环的形式(can be easily modified to run in constant space),FoldRight 出于它本身的算法就必须用到非常量复杂度的栈空间(就是下面说的直觉式,好像 John Backus 最开始 20 世纪的那篇 FP 创立论文 Can Programming Be Liberated from the von Neumann Style? 说的『inseration』插入操作符)
不知道它是如何工作的...
最后给可能一样的大家,顺便给自己:(反正你们不看,傲娇。
=
=
=
=
所以其实蛮 effective(#fix efficient) 的(比起 foldRight 定义的那个
其实我刚才说的弄不懂是我在吃饭的时候考虑了一下拿
foldl 定义的 reverse 函数Haskell(Scheme 的太长不复制了)
foldl :: (a -> r -> r) -> r -> ([a] -> r)能用(F**king 的 GHCi 里莫名其妙报 Branch exhaustivness 错误弄得我一直很麻烦)。(如果是
foldl f v [] = v
foldl f v (x : xs) = foldl f (f x v) xs
reverse = foldl (\x xs -> x : xs) []
Prelude 里的 foldl 的话 reverse foldl 的第一个 lambda expression 参数的两个参数 x xs 调成 xs x 就可以了)这里用
foldl 而不是 foldr 来定义是为了方便大家了解 fold operator而且,FoldLeft 可以尾递归优化成循环的形式(can be easily modified to run in constant space),FoldRight 出于它本身的算法就必须用到非常量复杂度的栈空间(就是下面说的直觉式,好像 John Backus 最开始 20 世纪的那篇 FP 创立论文 Can Programming Be Liberated from the von Neumann Style? 说的『inseration』插入操作符)
foldr (+) 0 [1,2,3]但我惊恐的发现我 居! 然!
= (+) 1 ((+) 2 ((+) 3 0))
= 1 + 2 + 3 + 0
= 6
不知道它是如何工作的...
最后给可能一样的大家,顺便给自己:(反正你们不看,傲娇。
reverse 1 : 2 : 3 : []=
foldl f v [] = v
foldl f v (x : xs) = foldl f (f x v) xs
foldl (\x xs -> x : xs) [] [1,2,3]
— 这里就简化 (\x xs -> x : xs) 为 f 了=
foldl f (f 1 []) [2,3] =
foldl f (f 2 [1]) [3] — (1)=
foldl f (f 3 [2,1]) [] — (2)=
foldl f [3,2,1] []
= [3,2,1]
哦我总算知道了... 先被模式匹配出来的先压入 (:) LIFO [](本质上不是压入,而是 cons 出链表,不过我觉得这里反正都一样),和之前的汉诺塔问题一样...foldl (\x xs -> x : xs) [] [1,2,3]
上面的程序结果其实就是 3 : (2 : (1 : []))
(1 : []) 就是式子 (1) 的结果(2 : (1 : [])) 就是式子 (2) 的结果所以其实蛮 effective(#fix efficient) 的(比起 foldRight 定义的那个
++ [x] 没效率来说(++ ys) = foldr (:) ysForwarded from duangsuse Throws
#life 打印机墨盒到货了,可以继续打印文章看喽( 😆
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta ● CN)
https://mobile.twitter.com/JBToolbox/status/1085853883451219968
以后可以用 JetBrains Toolbox 安装 Android Studio 啦!!!
以后可以用 JetBrains Toolbox 安装 Android Studio 啦!!!
Twitter
JetBrains Toolbox
13 is your lucky number if you are an Android developer, because Toolbox App 1.13 adds support for Android Studio! Learn more about it https://t.co/VyP8eytvkl
Forwarded from LetITFly News (李皓奇)
选择是否允许应用保活理应是用户的权利,但是由于用户群体的实际水平,导致这个权利产生了一定程度的倾斜,最坏的情况就是变成了厂商定制ROM的权力。这才是正经的开发者们所担忧的:这种情况下厂商ROM作为中间环节造成了开发者和用户之间的信息不对等。
duangsuse::Echo
#recommended #Ruby #Elec https://blog.lilydjwg.me/2012/3/24/flip-flop-in-ruby-jk-latch.32635.html
This media is not supported in your browser
VIEW IN TELEGRAM
(接上文)原博文
又是一个『大家可能不知道的』Ruby 语法?
(电子电路分析之类的可能比较复杂,工作集合很大,我不喜欢分析这些
(就像我不喜欢做数学运算一样,我还是喜欢弄一些耦合度(密集度)比较低的问题,方便分析一些
(否则我就会很难受,比如这个
一个 flip-flop 由两个通过
除非其左侧表达式为
一旦该表达式为
它会保持该状态,而且对其后续的求值也返回
如果其右侧表达式为
(其实 RednaxelaFX 也曾经在 Ruby 的啥 Conf 上向 Matz 提出过他不能回答的问题,不过其实说这个事的人也不是特别爱好技术所以他没有告诉大家具体是什么问题
我想到了学习数字电路时遇到的各种触发器,于是乎,反复读了几次以上描述确定了 flip-flop 的行为到底如何后,列出了它的真值表,其中 A、B 为点两边的表达式的值(输入),Q 为其内部状态,Qn 就是 Qnext。
flip-flop(在电子电路中就是「触发器」的意思) 就是 JK 触发器:
又是一个『大家可能不知道的』Ruby 语法?
(电子电路分析之类的可能比较复杂,工作集合很大,我不喜欢分析这些
(就像我不喜欢做数学运算一样,我还是喜欢弄一些耦合度(密集度)比较低的问题,方便分析一些
(否则我就会很难受,比如这个
一个 flip-flop 由两个通过
..操作符相连的布尔表达式构成。除非其左侧表达式为
true,否则一个 flip-flop 表达式就是 false,而且在左侧表达式为 true 之前,它的值都会是 false。一旦该表达式为
true ,那么它就会“flips”到一个持久的 true 状态。它会保持该状态,而且对其后续的求值也返回
true,直到其右侧表达式成为 true 为止。如果其右侧表达式为
true 了,那么该 flip-flop 就会“flops”回一个持久的 false 状态,对其后续的求值也返回 false,直到其左侧表达式再次成为 true 为止作者还说"很难正式地描述一个 flip-flop 的精确行为"。但我不这么认为。== 由此我们可以发现,其实即使是 #Ruby 之父松本,也不是『完人』,创造了 Ruby 的人有不知道自己做了什么的时候(flip-flop 特性是从 Perl 语言里继承的,而后者又是从 AWK、SED 这样面向文本处理的语言里复刻的)。(暴论
(其实 RednaxelaFX 也曾经在 Ruby 的啥 Conf 上向 Matz 提出过他不能回答的问题,不过其实说这个事的人也不是特别爱好技术所以他没有告诉大家具体是什么问题
我想到了学习数字电路时遇到的各种触发器,于是乎,反复读了几次以上描述确定了 flip-flop 的行为到底如何后,列出了它的真值表,其中 A、B 为点两边的表达式的值(输入),Q 为其内部状态,Qn 就是 Qnext。
flip-flop(在电子电路中就是「触发器」的意思) 就是 JK 触发器:
J K Q Qn
0 0 0 0
0 0 1 1
0 1 X 0
1 0 X 1
1 1 0 1
1 1 1 0Telegram
duangsuse::Echo
#recommended #Ruby #Elec https://blog.lilydjwg.me/2012/3/24/flip-flop-in-ruby-jk-latch.32635.html
duangsuse::Echo
顺便说一下,王垠(其实我知道我不应该老是提他,而且相信大家有很多人都只知道王垠,因为很多人在吹他,然后这里面有些人就连轮子哥、Rednaxelafx 大、三锋都不知道)(其实知道又怎么样,你们不会看他博客的...)喷一些人是 fold 都不知道是什么就在那瞎用 其实嘛,我想了一下发现我自己就有点这个意思,不过我是搞得懂 foldr 然后暂时搞不懂 foldl 当然,对一些比较崇拜淫王的人来说(其实我现在因为选择了放松一点自己这方面发展就没有那么神经质了(之前我总是觉得会有 #Android 开发的前端来喷我,现在不会有这种臆想了…
后来我又稍微看了一下他的博客,我真的觉得... #blog #recommended #statement #dev #FP
好像,不管你是不是了解计算机科学,都能『看懂』他的博文(
区别在于你是只看懂了故事,甚至会自以为是的找一些非常 trivial 的仅仅表述上的问题(那是曾经的我,我根本看不到他身后到底有怎样的积淀,真的是非常幼稚(而且那时候完全不了解 Rust 的我居然想讨论 Rust,真还不照镜子看看自己啥 B 样了(打住,阿 Q 告警。
还是真正看懂了他要说的东西
对于故事,你是否联想到了相应的东西?
对于他讲的技术,你是否真的 get 到了所有知识点?
还是自以为『都看懂了』但一问三不知???
可是,一年之隔,我再看他的博客的时候我发现我真的不止是在看带有一大堆技术名词、人名、时间的故事了...
我真的能看进去,原来我直接 skip 掉的一些知识点我都 get 了(其实只是识别出来有『它』但因为时间关系而没有深入探究),而不是自以为都看进去了(就像 MySQL 到 9012 年了能解析
(这是最骚的,因为你完全可以认为自己好像『完全看懂』了他的博客,但其实你『完全』没看懂,而且你『完全』可能『完全』不知道自己『完全没看懂』...) 🤪
他这个博客可以说是真正意义上是值得为之付费的,因为的确是讲了很多东西,而且是中文的,而且相当简洁
我觉得这样的博客『付费』可以说是很嘲讽某些『知识付费』IT 课堂了。
因为这个博客,它需要你自己也花很多时间和精力去理解它,而不是非常功利的去按别人的安排学习
而很多东西(比如这个)虽然也可以说是为了实际工程写的,但我估计,没有啥『工程师』看得懂吧(笑)🤔
(实际上是根本懒得看,或者只是理解了一个字面上的『编码,这里就不吐槽易混问题了』『规则』而看不到规则后面的那些本质)
好像,不管你是不是了解计算机科学,都能『看懂』他的博文(
区别在于你是只看懂了故事,甚至会自以为是的找一些非常 trivial 的仅仅表述上的问题(那是曾经的我,我根本看不到他身后到底有怎样的积淀,真的是非常幼稚(而且那时候完全不了解 Rust 的我居然想讨论 Rust,真还不照镜子看看自己啥 B 样了(打住,阿 Q 告警。
还是真正看懂了他要说的东西
对于故事,你是否联想到了相应的东西?
对于他讲的技术,你是否真的 get 到了所有知识点?
还是自以为『都看懂了』但一问三不知???
可是,一年之隔,我再看他的博客的时候我发现我真的不止是在看带有一大堆技术名词、人名、时间的故事了...
我真的能看进去,原来我直接 skip 掉的一些知识点我都 get 了(其实只是识别出来有『它』但因为时间关系而没有深入探究),而不是自以为都看进去了(就像 MySQL 到 9012 年了能解析
CREATE TABLE 的 CHECK 子句存储引擎居然还不会执行实际的数据约束检查一样 hhhh 🌚),然后学到了什么呢?其实一大堆东西『使用』的时候才能发现,根本没有学到嘛。(最骚的是,很多理论上的东西只在你 nontrivial 的分析一些 nontrivial 的问题时才会用到)(这是最骚的,因为你完全可以认为自己好像『完全看懂』了他的博客,但其实你『完全』没看懂,而且你『完全』可能『完全』不知道自己『完全没看懂』...) 🤪
他这个博客可以说是真正意义上是值得为之付费的,因为的确是讲了很多东西,而且是中文的,而且相当简洁
我觉得这样的博客『付费』可以说是很嘲讽某些『知识付费』IT 课堂了。
因为这个博客,它需要你自己也花很多时间和精力去理解它,而不是非常功利的去按别人的安排学习
而很多东西(比如这个)虽然也可以说是为了实际工程写的,但我估计,没有啥『工程师』看得懂吧(笑)🤔
(实际上是根本懒得看,或者只是理解了一个字面上的『编码,这里就不吐槽易混问题了』『规则』而看不到规则后面的那些本质)
duangsuse::Echo
后来我又稍微看了一下他的博客,我真的觉得... #blog #recommended #statement #dev #FP 好像,不管你是不是了解计算机科学,都能『看懂』他的博文( 区别在于你是只看懂了故事,甚至会自以为是的找一些非常 trivial 的仅仅表述上的问题(那是曾经的我,我根本看不到他身后到底有怎样的积淀,真的是非常幼稚(而且那时候完全不了解 Rust 的我居然想讨论 Rust,真还不照镜子看看自己啥 B 样了(打住,阿 Q 告警。 还是真正看懂了他要说的东西 对于故事,你是否联想到了相应的东西?…
好吧,我得承认我后来再看这个广播的时候觉得自己有点幼稚。
呃... 其实我知道我 #CS (或者也可以叫计算机工程,不过数学性比较强的,这里请正确理解这个『数学性』一般我还是叫计算机科学)水平其实不怎么样(真的不怎么样)
看了以后,我的确是想说这个博客内容很不错,不过我发现我推荐着推荐着就有点感觉自己很 Low 了,大概是因为例子不充足吧。显得自己好像很自以为是一样。
而且我又没有他那样的资历,话说得如此直白会显得很不自在,但点名推荐是真的(当然,我频道的内容都懒得看那就算喽,开玩笑
所以这里特别再弱弱说一句~请多指教
(当然,不得不说目前 Telegram 中文圈里我接触到的理论系都太少了,所以基本没谁会在这方面『指教』我... 有点可惜,而我平时又不到 CodeWars、知乎和一些 CS 的 QQ 群、圈子里去
呃... 其实我知道我 #CS (或者也可以叫计算机工程,不过数学性比较强的,这里请正确理解这个『数学性』一般我还是叫计算机科学)水平其实不怎么样(真的不怎么样)
看了以后,我的确是想说这个博客内容很不错,不过我发现我推荐着推荐着就有点感觉自己很 Low 了,大概是因为例子不充足吧。显得自己好像很自以为是一样。
而且我又没有他那样的资历,话说得如此直白会显得很不自在,但点名推荐是真的(当然,我频道的内容都懒得看那就算喽,开玩笑
所以这里特别再弱弱说一句~请多指教
(当然,不得不说目前 Telegram 中文圈里我接触到的理论系都太少了,所以基本没谁会在这方面『指教』我... 有点可惜,而我平时又不到 CodeWars、知乎和一些 CS 的 QQ 群、圈子里去