Forwarded from ┗|∵|┓Hz ❁ HoneyWorks
YouTube
15 分鐘內,一次就搞懂「合成器」!(Synthesizer)
好和弦頻道沒有開啟 YouTube 廣告,因此我不會從 YouTube 這邊得到任何收入,如果你覺得好和弦的課程有幫助到你,請你考慮購買「家庭號大包裝」來支持好和弦,讓好和弦能夠繼續提供免費的教學給所有人!到以下的連結喔:
好和弦 220 集紀念版大大大大大大大大大大包裝:https://gum.co/NiceChordBigPack220
好和弦家庭號大包裝(中國大陸):http://www.upchord.cn/downloads/nicechord/
好和弦 Instagram:https://…
好和弦 220 集紀念版大大大大大大大大大大包裝:https://gum.co/NiceChordBigPack220
好和弦家庭號大包裝(中國大陸):http://www.upchord.cn/downloads/nicechord/
好和弦 Instagram:https://…
sin wave; triangle wave
square wave; saw wave
high pass filter; low pass filter
ADSR
square wave; saw wave
high pass filter; low pass filter
ADSR
Forwarded from 2019-nCoV疫情实时播报🅥
Forwarded from 每日消费电子观察 (Dave Lin)
B社官方微博发毁灭战士x辐射漫画提醒:不要吃蝙蝠
https://www.gamersky.com/news/202001/1259733.shtml
https://www.gamersky.com/news/202001/1259733.shtml
streams.iterate(1, [](x) -> x * 2)
.filter([](x) -> x > 100_000)
.skip(5)
.take_while([](x) -> x <= 5000_000)
.for_each(system.out.println)
生成序列自(1),2*它。
去滤出「它大十万」
去略过(5)
去取当「它不大五百万」
去对所有(::说)
……怎么办呢……
.filter([](x) -> x > 100_000)
.skip(5)
.take_while([](x) -> x <= 5000_000)
.for_each(system.out.println)
生成序列自(1),2*它。
去滤出「它大十万」
去略过(5)
去取当「它不大五百万」
去对所有(::说)
……怎么办呢……
/tmp/duangsuse.sock
今天上午,我想了一些语言实现的细节。 1. 绝句的一些语法大体上是那样,但偶尔会有『插入模式』的修改,怎么做这一部分的代码复用 比如,绝句的逗号表示法偶尔会有带 [] 标签的版本和 〖〗 参数的版本、enum class 的布局也要允许在顿号后换行,怎么在兼容这样情况同时进行解析器的代码复用 2. 我说「回」「抛下」「停下」不是表达式,那么 空则,回。 这样的类型检查怎么做? 况且绝句的逗号表示法的逗顿句简写,基本上可以认为是等同 Kotlin 的 {} brace block,那么它是否可以有值?…
1. 很简单啊,解析器不是可以动态用子程序组织的吗?只要添加对应的参数,就可以把结果放到
2.
是不可能支持的。逗顿句不能有值,如果是逗号块那也需要写
所以说,「空则」提供多句可以,但最后都必须是……
算了,那样要分开来写控制流分析和类型检查啊…… 我感觉回到了 C _Noreturn 的时代,好无趣的样子啊
我在考虑 还是回到 Kotlin 的那种处理方法,{} block 内(逗顿句)也允许
「若」的表达式形式也是
……是不是有点 太严格了
而且这样
就很冗长啊
看来单句和多句的情况 必须要区分了
这段代码就无效了,多句不能有值……
可是…… 这个区分感觉好莫名其妙啊
这么说,Kotlin 真的做对了?
break continue 如果要支持 if 表达式,就必须要提供?
{} 里面的最后一项本来就应该表达块本身的值?
SyntaxTuple 里2.
空则,回。 这个空则 当然是要求最后得到一个 Nothing 了(按 Kotlin 的思路),、。 逗顿句简记,如果是多句的情况并且需求处要一个值,为了保证顿号的语义没问题是不可能支持的。逗顿句不能有值,如果是逗号块那也需要写
回[令为] 什么的。所以说,「空则」提供多句可以,但最后都必须是……
算了,那样要分开来写控制流分析和类型检查啊…… 我感觉回到了 C _Noreturn 的时代,好无趣的样子啊
我在考虑 还是回到 Kotlin 的那种处理方法,{} block 内(逗顿句)也允许
return@ 好了行一(回、停下、继续) 又该怎么办呢……「若」的表达式形式也是
量 某物 = 若p,
回[某物] 1
否则,
回[某物] 2 ……是不是有点 太严格了
而且这样
说(若[话]p,回[话]"你好"。否则,回[话]"再见"。)
println(if (p) "你好" else "再见") 就很冗长啊
说(若p,回[说]"你好"。否则,回[说]"再见"。)这样又显得特殊处理太多,又是 block 调用的 receiver 又是量的名字、调用的函数名,还区分情况。
看来单句和多句的情况 必须要区分了
说(若p,"你好"。否则,"再见"。)这是单句的情况,逗号表示法本身可以有值。
说(若p,说("啊")、"你好"。否则,"再见"。)
这段代码就无效了,多句不能有值……
可是…… 这个区分感觉好莫名其妙啊
说(若p,某事情()、偏好的招呼用语。否则,"再见"。)
、a。 其实给人「a是值」的感觉呢这么说,Kotlin 真的做对了?
break continue 如果要支持 if 表达式,就必须要提供?
{} 里面的最后一项本来就应该表达块本身的值?
/tmp/duangsuse.sock
1. 很简单啊,解析器不是可以动态用子程序组织的吗?只要添加对应的参数,就可以把结果放到 SyntaxTuple 里 2. 空则,回。 这个空则 当然是要求最后得到一个 Nothing 了(按 Kotlin 的思路) ,、。 逗顿句简记,如果是多句的情况并且需求处要一个值,为了保证顿号的语义没问题 是不可能支持的。逗顿句不能有值,如果是逗号块那也需要写 回[令为] 什么的。 所以说,「空则」提供多句可以,但最后都必须是…… 算了,那样要分开来写控制流分析和类型检查啊…… 我感觉回到了 C _Noreturn…
这么说,我想了半天的那个「改进」又归为虚无了……
那么,「空则」也没有必要提供令外一种写法了……
那么,「空则」也没有必要提供令外一种写法了……
/tmp/duangsuse.sock
1. 很简单啊,解析器不是可以动态用子程序组织的吗?只要添加对应的参数,就可以把结果放到 SyntaxTuple 里 2. 空则,回。 这个空则 当然是要求最后得到一个 Nothing 了(按 Kotlin 的思路) ,、。 逗顿句简记,如果是多句的情况并且需求处要一个值,为了保证顿号的语义没问题 是不可能支持的。逗顿句不能有值,如果是逗号块那也需要写 回[令为] 什么的。 所以说,「空则」提供多句可以,但最后都必须是…… 算了,那样要分开来写控制流分析和类型检查啊…… 我感觉回到了 C _Noreturn…
我想到了一种好方法,可以解决 if 表达式的问题
再引入以个新「若」语法,就可以回归 Java 的老式风格了
可是这样实在是不好看啊……
再引入以个新「若」语法,就可以回归 Java 的老式风格了
说(若p"你好"否则"再见") 可是这样实在是不好看啊……
说(若a去试等(2)"你好"否则"再见")我终于知道三目运算符 ternary 为什么是
p? a : b 那样写了。Forwarded from Deleted Account
刚才提到了点传统的类型理论,小白肯定蒙蔽吧。
类型是值的集合,会以「a, b, c 值都属于 A 类型」形式描述。
1, 2, 3 都是 Int
1.0, 2.0, 3.0 都是 Double
所以你就可以
比如,Int 和 Double 的交集是 Number,
A 和 B 的并集(union) 在可以同时视为 A 及 B
比如,Int 和 Double 的并集可以是 Number 以及 Any 以及 Any?
刚才我说
Any? 的意思是除了 Any 原有的元素还可是
Kotlin 里那个
就是不让用
类型是值的集合,会以「a, b, c 值都属于 A 类型」形式描述。
1, 2, 3 都是 Int
1.0, 2.0, 3.0 都是 Double
fun Int.plus(other: Int): Int是一个操作,接受两个 Int(receiver 处的也算)返回一个 Int
所以你就可以
(1 + 1) + 2 这么用,因为 (1+1) 本身也是 Int
A 和 B 的交集(intersection) 在类型上,就是说一个兼容AB交集的操作,同时兼容 A 和 B 作为输入比如,Int 和 Double 的交集是 Number,
fun Number.toInt(): Int,可以视为两者兼有的操作A 和 B 的并集(union) 在可以同时视为 A 及 B
比如,Int 和 Double 的并集可以是 Number 以及 Any 以及 Any?
刚才我说
listOf(1, return): List<T> 其中用的操作的签名是 fun <T> listOf(vararg item: T): List<T>
之所以说是 union 不是 intersection 是,举个例子吧,因为它上面的 List<T>.get(Int): T 需要同时兼容输出 Int 和 Nothing,自然是并集喽。Any? 的意思是除了 Any 原有的元素还可是
null Kotlin 里那个
in / out 的意思还是从那个类型参数的使用位置来看。fun main(args: Array<out String>) 就是不让用
Array<String>.set(Int, String) 了Forwarded from Deleted Account
好看嘛,用
不然语义实在捉鸡
fun <CAT> play(cat: CAT) where CAT: CoolCat, CAT: Happyable 可不方便不然语义实在捉鸡
Forwarded from Deleted Account
只是对于集合论的一些符号 化成 ASCII,许多人的理解会 产生分歧
这一点 不是特别容易遇到,但的确是存在的
有些人觉得 A|B 是 intersection 呢
还有人觉得 A^B 是 intersection
也有人吧 A|B 当 union
这一点 不是特别容易遇到,但的确是存在的
有些人觉得 A|B 是 intersection 呢
还有人觉得 A^B 是 intersection
也有人吧 A|B 当 union
Forwarded from Deleted Account
listOf 的两个参数 String, Int 我们来取一个 union……
结果就是 Comparable<T>
两个参数再取 union…… {String & Int}
为了安全,compareTo(other: T) 就必须同时兼容 String 和 Int
就是 Any 啦
至于 Serializeable,那个也都说了是 { {Comparable<A&B>} & Serializable}
是在外面的东西
interface String: Comparable<String>
interface Int: Number, Comparable<Int> 结果就是 Comparable<T>
两个参数再取 union…… {String & Int}
为了安全,compareTo(other: T) 就必须同时兼容 String 和 Int
就是 Any 啦
至于 Serializeable,那个也都说了是 { {Comparable<A&B>} & Serializable}
是在外面的东西
Forwarded from Deleted Account
Int & String 是 Any 或 Any?
忘了,其实 Int&String 是 Nothing,不过 accept 是
fun accept(x: Any) {}
listOf(1, "").forEach(::accept) acceptable忘了,其实 Int&String 是 Nothing,不过 accept 是
Function<in Any, out Unit>