duangsuse::Echo
#CSharp 好像早就有了啊,Java 的 TryWithResource(Closeable)不就是和 CSharp 学的吗? 下面那个我觉得好像 class T 可以改成这样(个人看法,程序逻辑不等价 class CouterEnumeratorExample { private int _counter = 0; public CounterEnumeratorExample() {} public int Current => _counter; public bool moveNext()…
#recommended 所以说,Haskell 应该怎么写???
Haskell 不是拿来写 HelloWorld 这种简单到不要不要的程序的,也不是拿来用 Guard Pattern、List Comprehension
Haskell、Scala、Scheme、CoffeeScript 之类的 FP 语言不是让人拿来写一点
对于优秀的程序员来说 FP 既不应该是『可望可谈而不可及』的白象也不应该是非常表面的一些东西(比如单纯字面上的『本本主义者』什么纯函数啊、什么递归替代循环啊、什么惰性求值模式匹配啊),FP 爱好者们应该从程序们里面看到一种... 一种... 思考的快乐?这是很多『称职』的工程师们做不到的 — 对他们来说这是『头疼』
FP 不应该是什么头衔,不要拿它去做什么非常功利的事情,我想没有人想东施效颦或者当什么演员
真正的 FP 爱好者,他们从来都不会去谈自己喜欢 FP、FP 基本特色这类非常 trivial 的事情,技术水平都是非常自然的从自己的代码和讨论里流露出来的
一上 Haskell 至少是
当然不能说 FP 或者 OOP 都是拿来表示一切的,都有各自擅长的领域,比如 FP 要拿来写 Android 应用可能就有点高射炮打蚊子的意思了(可能根本用不到啥好玩的特性,写不出多好看的程序来,一大堆
有的时候就是这样的,OOP 是表述式,FP 是定义式的风格,二者各自适合不同的程序,定义式有些情况下表述程序起来比较不方便
(偶尔想说一些这样的东西,但其实我不是特别了解所以把握不好,get 到我的意思就好了(请,emmmmm.....
Haskell 不是拿来写 HelloWorld 这种简单到不要不要的程序的,也不是拿来用 Guard Pattern、List Comprehension
[x * 2 | x <- l, isOdd x] 这种简直语法糖的东西的,这种事情应该留给 JavaScript 这种工业界常用的语言去做Haskell、Scala、Scheme、CoffeeScript 之类的 FP 语言不是让人拿来写一点
(for-each ...) 的,实际上单单就 FP 编程,不包含一些更高更开阔的视角,至少 Y 组合子得会定义,并且简单的递归程序,比如 filter、dropWhile 得会写对于优秀的程序员来说 FP 既不应该是『可望可谈而不可及』的白象也不应该是非常表面的一些东西(比如单纯字面上的『本本主义者』什么纯函数啊、什么递归替代循环啊、什么惰性求值模式匹配啊),FP 爱好者们应该从程序们里面看到一种... 一种... 思考的快乐?这是很多『称职』的工程师们做不到的 — 对他们来说这是『头疼』
FP 不应该是什么头衔,不要拿它去做什么非常功利的事情,我想没有人想东施效颦或者当什么演员
真正的 FP 爱好者,他们从来都不会去谈自己喜欢 FP、FP 基本特色这类非常 trivial 的事情,技术水平都是非常自然的从自己的代码和讨论里流露出来的
一上 Haskell 至少是
fib = 1 : 2 : zipWith (tail fib) 这种级别,要不然还是 Java 之类简单的语言靠谱,或者混合 Kotlin 也行当然不能说 FP 或者 OOP 都是拿来表示一切的,都有各自擅长的领域,比如 FP 要拿来写 Android 应用可能就有点高射炮打蚊子的意思了(可能根本用不到啥好玩的特性,写不出多好看的程序来,一大堆
do notation,函数式平时的感觉和定义式风格都没有了)有的时候就是这样的,OOP 是表述式,FP 是定义式的风格,二者各自适合不同的程序,定义式有些情况下表述程序起来比较不方便
(偶尔想说一些这样的东西,但其实我不是特别了解所以把握不好,get 到我的意思就好了(请,emmmmm.....
#SQL 我跟你们讲啊,我之前连 SQL
Python:
这不是个好例子,不过我很随意的.... 😕
JOIN 都不知道是在求并集的意思(...Python:
land = set(['rabbit', 'bear', 'duck', 'polebear'])
sky = set(['duck', 'swan'])
print(land & sky)
btw. 陆生 = Terrestrial这不是个好例子,不过我很随意的.... 😕
Forwarded from 羽毛的小白板
duangsuse::Echo
#recommended 所以说,Haskell 应该怎么写??? Haskell 不是拿来写 HelloWorld 这种简单到不要不要的程序的,也不是拿来用 Guard Pattern、List Comprehension [x * 2 | x <- l, isOdd x] 这种简直语法糖的东西的,这种事情应该留给 JavaScript 这种工业界常用的语言去做 Haskell、Scala、Scheme、CoffeeScript 之类的 FP 语言不是让人拿来写一点 (for-each ...) 的,实际上单单就…
望着正在折腾 BrainFuck 的大佬
我可以很自豪的说,虽然我很菜,但是我至少能理解能学会很多东西了,而且不只是很泛泛地去学。
我缺少的是时间的付出,而不是硬性的智商捉鸡。
就比如说低从 BF 到高到偏序理论、形式化验证程序逻辑、机器学习::人工神经网络,我都可以看到自己对他们的理解程度并且知道如何继续学下去
到工业界的那些东西,也是一样,实际上我的实际应用编程会被我抽象成使用某些接口,基元操作的组合程序,用户界面交互、网络和序列化 IO 也会被我抽象成 PL 里面那些东西,这样思考时会方便一些
我刻意地为 AOP 进行优化,让应用变得可扩展而对程序员有趣味
这样的设计是模块化的,可细分的,而且我也再没出现过写不出代码的情况,先完成小目标,再回来去考虑大目标需要什么,不会呆在那里原地不动去想该如何开始
我可以很自豪的说,虽然我很菜,但是我至少能理解能学会很多东西了,而且不只是很泛泛地去学。
我缺少的是时间的付出,而不是硬性的智商捉鸡。
就比如说低从 BF 到高到偏序理论、形式化验证程序逻辑、机器学习::人工神经网络,我都可以看到自己对他们的理解程度并且知道如何继续学下去
到工业界的那些东西,也是一样,实际上我的实际应用编程会被我抽象成使用某些接口,基元操作的组合程序,用户界面交互、网络和序列化 IO 也会被我抽象成 PL 里面那些东西,这样思考时会方便一些
我刻意地为 AOP 进行优化,让应用变得可扩展而对程序员有趣味
这样的设计是模块化的,可细分的,而且我也再没出现过写不出代码的情况,先完成小目标,再回来去考虑大目标需要什么,不会呆在那里原地不动去想该如何开始
Codewars
BF basics #4: Sort the input
Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.
This media is not supported in your browser
VIEW IN TELEGRAM
duangsuse Throws
#School 这周马上就要放寒假了(还有一个月) 🤔 duangsuse 的安排嘛... 其他的都好了,本来每周就是讲东西为主,然后本周买了别的东西,画了几张画,最后书什么的基本没看。嗯嗯。 这周就是讲点东西,发点照片,没了。 顺便说一下,推荐有打印机又看过书的大家可以没事带几张 papper (比如之前那个代数程序逻辑的 fold.pdf,我在 USTC 中科大学生的分享里淘到的,当然论文基本都是公开的你们可以随便找个大学比如 Illinois 的 CS 系看...)到例如公交车的地方看看,因为…
#emmm 这周我发的一些东西... 因为都是『超常发挥』(其实都是我不了解的东西,然后我暴力硬讲)
一些水平比较高的人可能可以注意到我讲得都有点民科感了(其实还不如民科///,比如那个『哥巴赫猜想证明』我就写不出来,这里无讽意味
👆 这里就体现出一个 trivial 和 nontrivial 的区别了,本频道会告诉大家他的证明为什么是错误的,while 一些关注此事的其他频道都只是发个链接而已,根本懒得去看什么证明原文,更不会拿 XeTeX 特地排版个 PDF 出来给大家看了
对于能看出我这次讲得很迫真的人来说,说句抱歉,请多包涵... (
也非常感谢一些同行者的理解,虽然我们水平会相差很大,但我这个不算是乌龟的家伙正在努力的赶上前面的兔子,我不想特别去比较,但我要赶上前面的大家。
当时那样幼稚的话,要是还发给了 @drakeet 肯定早被长者们拉黑了,可是有些人虽然因为永远在学习所以不能特别的去关心其他 naive 一点的爱好者,却每次都愿意给予帮助,实在是发自真心的热爱 CS 啊
因为我其实对 FP 还有 Haskell 的一些东西都不是特别了解,然后又硬想讲
然后就出这种笑话,当然我其实不怕出笑话的( 🤔
我的水平其实一直不是特别高,目前算是打了个理解力基础,书什么的我还要再看第三遍
我还要尝试打字更快,然后我会再开一个频道专门放我对一些书知识的理解,到̶时̶候文̶体̶两̶开̶花̶,̶多̶多̶支̶持̶...
谢谢大家对我的关注。Thank Q Thank Q!(指 XM
今后也会努力做到曾经想的『工̸程̸理̸论̸两̸开̸花̸、信̸息̸生̸活̸两̸开̸花̸』同时 DSP、Net、信息编码、计算机图形学、人工智能这类边角科也得学好。
一些水平比较高的人可能可以注意到我讲得都有点民科感了(其实还不如民科///,比如那个『哥巴赫猜想证明』我就写不出来,这里无讽意味
👆 这里就体现出一个 trivial 和 nontrivial 的区别了,本频道会告诉大家他的证明为什么是错误的,while 一些关注此事的其他频道都只是发个链接而已,根本懒得去看什么证明原文,更不会拿 XeTeX 特地排版个 PDF 出来给大家看了
对于能看出我这次讲得很迫真的人来说,说句抱歉,请多包涵... (
也非常感谢一些同行者的理解,虽然我们水平会相差很大,但我这个不算是乌龟的家伙正在努力的赶上前面的兔子,我不想特别去比较,但我要赶上前面的大家。
当时那样幼稚的话,要是还发给了 @drakeet 肯定早被长者们拉黑了,可是有些人虽然因为永远在学习所以不能特别的去关心其他 naive 一点的爱好者,却每次都愿意给予帮助,实在是发自真心的热爱 CS 啊
因为我其实对 FP 还有 Haskell 的一些东西都不是特别了解,然后又硬想讲
然后就出这种笑话,当然我其实不怕出笑话的( 🤔
我的水平其实一直不是特别高,目前算是打了个理解力基础,书什么的我还要再看第三遍
我还要尝试打字更快,然后我会再开一个频道专门放我对一些书知识的理解,到̶时̶候文̶体̶两̶开̶花̶,̶多̶多̶支̶持̶...
谢谢大家对我的关注。Thank Q Thank Q!(指 XM
今后也会努力做到曾经想的『工̸程̸理̸论̸两̸开̸花̸、信̸息̸生̸活̸两̸开̸花̸』同时 DSP、Net、信息编码、计算机图形学、人工智能这类边角科也得学好。
duangsuse::Echo pinned «#emmm 这周我发的一些东西... 因为都是『超常发挥』(其实都是我不了解的东西,然后我暴力硬讲) 一些水平比较高的人可能可以注意到我讲得都有点民科感了(其实还不如民科///,比如那个『哥巴赫猜想证明』我就写不出来,这里无讽意味 👆 这里就体现出一个 trivial 和 nontrivial 的区别了,本频道会告诉大家他的证明为什么是错误的,while 一些关注此事的其他频道都只是发个链接而已,根本懒得去看什么证明原文,更不会拿 XeTeX 特地排版个 PDF 出来给大家看了 对于能看出我这次讲…»
duangsuse::Echo
#OI #dev 顺便问一下(提个有趣的问题等有趣的人来解答),谁对开发类似静态(就是按一下键刷新一帧)贪吃蛇游戏有算法思路? duangsuse 还是今天才有的 LIFO 蛇表示法思路...
因为我之前对 BitMap 是无感的,现在就有感了(自从写那个简单的 Python FreeType 程序之后
其实对于大佬们来说,平时写点『短代码』,比如拿 Kotlin + JDK AWT
(实际上很多人哪怕写的是 Haskell,理解所基的也是非常 trivial 非常字面上而且浅薄的模式识别,他们根本没有一个清晰明了的思路,没有那么强的直觉,因为人类的本质... 是什么呢?)
?:{人类的本质是什么}
真的都不是事... 拿来讲讲而已... 包括 @kodamasakuno (Windows C# 开发者)也会拿 WMF(WindowsMediaFoundation)C# 去写代码剪辑视频
而不是用剪辑软件,虽然这种非常 trivial 的技能他们也不是没有
(实际上,这种技能都被我看作是『生来就有』『理所应当』的)(take for granted)
你会发现他们的学习能力真的很强,什么东西信息都是信手掂来的,技能也都是即学即用,从来不会在特定的某个领域,某个工程上停留太久
就是那种所谓的『天才』,而且很有研究能力,探讨问题起来也是口若悬河
但又着实有着长时间维护某些中型工程的能力,他们只是『学不饱』
这就可见他们的智慧了... 大佬 👍 #CS #statement
其实对于大佬们来说,平时写点『短代码』,比如拿 Kotlin + JDK AWT
JPanel 画函数图(而不是用 ZeGrapher 这种,或者拿 Python 库去写)(实际上很多人哪怕写的是 Haskell,理解所基的也是非常 trivial 非常字面上而且浅薄的模式识别,他们根本没有一个清晰明了的思路,没有那么强的直觉,因为人类的本质... 是什么呢?)
?:{人类的本质是什么}
真的都不是事... 拿来讲讲而已... 包括 @kodamasakuno (Windows C# 开发者)也会拿 WMF(WindowsMediaFoundation)C# 去写代码剪辑视频
而不是用剪辑软件,虽然这种非常 trivial 的技能他们也不是没有
(实际上,这种技能都被我看作是『生来就有』『理所应当』的)(take for granted)
你会发现他们的学习能力真的很强,什么东西信息都是信手掂来的,技能也都是即学即用,从来不会在特定的某个领域,某个工程上停留太久
就是那种所谓的『天才』,而且很有研究能力,探讨问题起来也是口若悬河
但又着实有着长时间维护某些中型工程的能力,他们只是『学不饱』
这就可见他们的智慧了... 大佬 👍 #CS #statement
Telegram
duangsuse::Echo
#Tool #CG #Python #Project 最终版... 权当玩具... 可是貌似花了我一些时间调试和了解,其实 PIL 封装得也是... 有好有不好
duangsuse::Echo
综上所述 #Learn #Haskell #FP #Algorithm 汉诺塔问题,问题的定义在这里 我对问题的抽象在这里 尝试使用递归算法求得可行解 我之前通过一̶长̶串̶失̶败̶的̶尝̶试̶总结出了规律 def naive-swap(dst, buf, src) = src(smaller) » buf; src(bigger) » dst; buf(smaller) » dst 这是一个较小规模的子问题 可以得知 + A=[] 时无需进行任何操作 + A=[1] 时进行 A » C + A=[1…
所以『天才』和『工程师』区别重点是在『独立思考』
这点淫王也提到过,自己脑子不用怎么能怪脑子不好使呢?
现在很多成年人的能力老够了,只不过是开始学习『如日出之阳』的时候没有尝试做太多的努力
去理解某些 nontrivial 的东西,而是一直发扬着『代码复用』的旗帜,写着不如小学奥数的代码,以至于有人入行五年可能都没有本质上的长进
最后成为技能树比较平凡比较窄的工程师,只能做了很多工程后才能做出一些还不错的库、框架,而且产量很低目光很短
有些人甚至最后成为一个单纯的翻译机一个码农,比起这样,我还是更愿意当数学爱好者吧...
虽然一切都要自己动手(如果不考虑那些计算机数学系统的话)但至少自己明白自己在干什么,不只是一个接口层面上的抽象
而是自己理解整个过程,自己手算 1+1=2
虽然最后这个 Hanoni 塔问题,我早知道可以递归解题但是还是没能等到独立解题的时候(熬夜分析了两个小时)
但最后我的确是开始走向问题解决办法了,而且我是独立思考的
独立思考很重要,最终的题解其实大家看了或许都有『恍然大悟』的感觉,但是独立推导归纳出来这些『简单』的东西之后,收获才是最大的。
这点淫王也提到过,自己脑子不用怎么能怪脑子不好使呢?
现在很多成年人的能力老够了,只不过是开始学习『如日出之阳』的时候没有尝试做太多的努力
去理解某些 nontrivial 的东西,而是一直发扬着『代码复用』的旗帜,写着不如小学奥数的代码,以至于有人入行五年可能都没有本质上的长进
最后成为技能树比较平凡比较窄的工程师,只能做了很多工程后才能做出一些还不错的库、框架,而且产量很低目光很短
有些人甚至最后成为一个单纯的翻译机一个码农,比起这样,我还是更愿意当数学爱好者吧...
虽然一切都要自己动手(如果不考虑那些计算机数学系统的话)但至少自己明白自己在干什么,不只是一个接口层面上的抽象
而是自己理解整个过程,自己手算 1+1=2
虽然最后这个 Hanoni 塔问题,我早知道可以递归解题但是还是没能等到独立解题的时候(熬夜分析了两个小时)
但最后我的确是开始走向问题解决办法了,而且我是独立思考的
独立思考很重要,最终的题解其实大家看了或许都有『恍然大悟』的感觉,但是独立推导归纳出来这些『简单』的东西之后,收获才是最大的。
Telegram
duangsuse::Echo
See Also:
+ 各种语言的算法实现
+ 某博客的教程
+ Haskell 图解,并且使用了 Haskell 可视化包
+ 一个延伸的汉诺塔问题
+ Wikipedia Hanoi
+ Wikipedia 递归
== Haskell 的副作用版解法
hanoni n (a, b, c)
| n == 1 = putStr (a ++ "->" ++ c) >> putStrLn ";"
| otherwise
= do
hanoni (n - 1) (a, c, b)…
+ 各种语言的算法实现
+ 某博客的教程
+ Haskell 图解,并且使用了 Haskell 可视化包
+ 一个延伸的汉诺塔问题
+ Wikipedia Hanoi
+ Wikipedia 递归
== Haskell 的副作用版解法
hanoni n (a, b, c)
| n == 1 = putStr (a ++ "->" ++ c) >> putStrLn ";"
| otherwise
= do
hanoni (n - 1) (a, c, b)…
23333 但其实我只是举个例子,因为平时这么做的人少 (hhh
当然补充一点,那次我看的好像是较早的 DirectShow API
这种对应到 GNU/Linux 系上就是用 ffmpeg 剪视频了,稍微简单一点因为不用写额外的 IO 代码
当然补充一点,那次我看的好像是较早的 DirectShow API
这种对应到 GNU/Linux 系上就是用 ffmpeg 剪视频了,稍微简单一点因为不用写额外的 IO 代码
Forwarded from 羽毛的小白板
过誉了,我没那么夸张。之前那剪辑是因为手头上没什么专门工具,加上要做的就只有简单的裁剪拼接操作,就用 AviSynth 了。就算是那样,调试预览都累死人的。我更多还是建议用专门的工具做剪辑……
https://t.me/dsuse/8781
https://t.me/dsuse/8781
Telegram
duangsuse::Echo
因为我之前对 BitMap 是无感的,现在就有感了(自从写那个简单的 Python FreeType 程序之后
其实对于大佬们来说,平时写点『短代码』,比如拿 Kotlin + JDK AWT JPanel 画函数图(而不是用 ZeGrapher 这种,或者拿 Python 库去写)
(实际上很多人哪怕写的是 Haskell,理解所基的也是非常 trivial 非常字面上而且浅薄的模式识别,他们根本没有一个清晰明了的思路,没有那么强的直觉,因为人类的本质... 是什么呢?)
?:{人类的本质是什么}…
其实对于大佬们来说,平时写点『短代码』,比如拿 Kotlin + JDK AWT JPanel 画函数图(而不是用 ZeGrapher 这种,或者拿 Python 库去写)
(实际上很多人哪怕写的是 Haskell,理解所基的也是非常 trivial 非常字面上而且浅薄的模式识别,他们根本没有一个清晰明了的思路,没有那么强的直觉,因为人类的本质... 是什么呢?)
?:{人类的本质是什么}…
duangsuse::Echo
bel.tar
duangsuse 这周剩下的时间里不讲笔记(又...
这周就先继续学习一下逆向工程。
不过,我不针对 liba.so,我这次练习自己归纳识别由 C/C in C++ 编译到 X86 汇编的能力
我会写点简单经典的 C 程序,然后对他们进行逆向分析
这周就先继续学习一下逆向工程。
不过,我不针对 liba.so,我这次练习自己归纳识别由 C/C in C++ 编译到 X86 汇编的能力
我会写点简单经典的 C 程序,然后对他们进行逆向分析
#recommended #blog Visitor Pattern 与 Finally Tagless:解决表达式问题 #Java #Kotlin #FP #PLT #dev
说到设计模式,大家一定会想到世界上著名的『面向对象编程语言』(棒读)Java。以及一大群认为动态类型编程语言比静态类型编程语言更『灵活』、设计模式解决的问题在动态类型编程语言里面都不是问题的人在各大娱乐网站发表的谜样の言论。 这篇文章虽然说是讨论设计模式,但是不是讨论这种问题的(2019 年了,同学)。我们站在一个更 PLT 的层次来看其中一个(我觉得还比较巧妙的)设计模式——Visitor 模式,以及它在函数式编程中对应的函数式编程的『设计模式』。
duangsuse::Echo
#recommended #blog Visitor Pattern 与 Finally Tagless:解决表达式问题 #Java #Kotlin #FP #PLT #dev 说到设计模式,大家一定会想到世界上著名的『面向对象编程语言』(棒读)Java。以及一大群认为动态类型编程语言比静态类型编程语言更『灵活』、设计模式解决的问题在动态类型编程语言里面都不是问题的人在各大娱乐网站发表的谜样の言论。 这篇文章虽然说是讨论设计模式,但是不是讨论这种问题的(2019 年了,同学)。我们站在一个更 PLT 的…
讲真,现在单单是知道 OO 还有这 Visitor Pattern 的工程师又有多少... 很多人简直要把 Java 写成 BASIC... 6
#Github 它那个 new isssue 功能有问题,Try Beta 直接给我输入的内容跳转丢了。丢人。