static String $$(final String key) {
if (RESOURCE_BUNDLE.containsKey(key))
return RESOURCE_BUNDLE.getString(key);
return '!' + key + '!'; }
— eclipse 自动生成的 真·大佬方案static String $$(final String key) {
try {
return RESOURCE_BUNDLE.getString(key); }
catch (MissingResourceException ignored) { return '!' + key + '!'; }}
/tmp/duangsuse.sock
艹,劳资 TMD 才想起来,我还以为自己做了很了不起的『优化』呢(这个思路很简单,就是 exception 要比正常返回多花时间),可是我就没有看出来这才是真正的优化... 为什么要避开常用的思路去 exception,其实就是『乐观(optimistic)』的优化思路啊!既然翻译本来就几乎不可能缺失,我为什么要每次去检查... 以后这个脑子还是要灵活一点 😭
Java 7 新加的 Multi-catch 方案语法糖也很甜的(而且蛮符合理论优雅性),不知道为什么没有人用 🤔
try {
blablabla();
evilOperation0();
evilOperation1();
} catch (EvilException | GoodException e) { e.printStackTrace(); }
/tmp/duangsuse.sock
吃上了 Eclipse Java(
🙈 其实这里第一个例子 #Java #Android 的
具体情况是下面语言实现的层面考虑的
assert 是错的... 大家看着理解就好了,我的意思主要关于『等价』具体情况是下面语言实现的层面考虑的
Button.OnClickListener exitApplication = ($) -> { ctx.finish(); };
assert exitApplication == new Button.OnClickListener() {
@Override void onClick(View _) { ctx.finish(); }
};
另外原来的 this 有个遮盖的问题,Kotlin 语法可以所以能用 this@scope 解决,Java 就没有办法惹
/tmp/duangsuse.sock
那么现在先开始讲『下面的事情』 🤔
先说一个无聊的做铺垫:
1. 走路的分段速度和音频流处理的窗口
(作者对信号处理和物理学都是外行,如果有发现错误请务必指出)
关于速度的计算,有一个问题,就是现实中我们无论如何也无法得知确切的瞬时速度。
所以就有了按时间段计算:路程/时间 = 速度
一般情况下都认为路程和时间都是连续的(无法分割为可枚举的一堆值阶或者集合什么的)
只要取到了一定的精度,实际上就可以认为是『瞬时的』速度。
信号处理也是一个道理,针对某一种需要一定量信号的算法,也可以指定一个比较大的窗口大小,执行实际处理,而不需要针对一个点发呆或者干脆认为『现实世界的信号是连续的,无法实现』一样
对于实时的网络流也是一样,可以裁切成片段发送(反正本来就是片段... 音频有每秒采样视频有帧)
2. Monad, Functor 和 flatMap
Functor 是什么呢?就是可以
首先世界是这个样子的:
有一种东西:对象(object)
有一种操作:态射(morphism)
对象是节点(node)、态射是边(edge),组成了一张范畴的图(graph)
对象是 a;态射是 a ~> a
这里的 a 可以理解为某种类型(
下面的是 Haskell 写的代码,当然很简单啦(否认
这里
(currying 就是)
Haskell 的基础 Lambda 演算就只有三种项:
x: variable
(λx. x): abstraction
(f x): application
当然还有一个上下文 Γ(Gamma) 也就是 Haskell 里的
就“实现了一门编程语言”
啊我找到了个很赞的教程
此外,一个范畴(category) 还有以下属性(要不然就和图没有区别了)
+ 封闭律:态射可以组合
+ 同一律:有一个箭头
态射就是状态的创建者。对象本身是多级态射构造出的映射组合
后面的
(比如 Nat 的 id=0, add1 = (+1))
在 C, D 都是
弄成什么的....
范畴只是抽象而已,然后 类型的变化 也是一种实例 或许
Monad 是自函子(Endofunctor) 范畴上的含宏半群(Monoid)
自函子 就是从范畴到同一个范畴的 函子
我们可以先
所以有偏差 我不负泽(
总之我很辣鸡 然后什么都 不知道 对不起....
1. 走路的分段速度和音频流处理的窗口
(作者对信号处理和物理学都是外行,如果有发现错误请务必指出)
关于速度的计算,有一个问题,就是现实中我们无论如何也无法得知确切的瞬时速度。
所以就有了按时间段计算:路程/时间 = 速度
一般情况下都认为路程和时间都是连续的(无法分割为可枚举的一堆值阶或者集合什么的)
只要取到了一定的精度,实际上就可以认为是『瞬时的』速度。
信号处理也是一个道理,针对某一种需要一定量信号的算法,也可以指定一个比较大的窗口大小,执行实际处理,而不需要针对一个点发呆或者干脆认为『现实世界的信号是连续的,无法实现』一样
对于实时的网络流也是一样,可以裁切成片段发送(反正本来就是片段... 音频有每秒采样视频有帧)
2. Monad, Functor 和 flatMap
Functor 是什么呢?就是可以
map 的东西(当然这个冰封哥早期讲过,不过没有细说)首先世界是这个样子的:
有一种东西:对象(object)
有一种操作:态射(morphism)
对象是节点(node)、态射是边(edge),组成了一张范畴的图(graph)
对象是 a;态射是 a ~> a
这里的 a 可以理解为某种类型(
下面的是 Haskell 写的代码,当然很简单啦(否认
x :: TYPE 前面的是一个变量,后面的是它的类型t -> r 这是 Haskell 的函数类型,它接受一个 t 类型返回一个 r 类型这里
t, r 都是 Haskell 的类型变量,而大写的类型则是 Haskell 真正的类型t 也可以是函数类型,比如 p -> q(左递归 Left recursive)(a, b) 这是 Haskell 的元组,它的 fst :: (a, b) -> a 是 a, snd 是 b
curry :: ((a, b) -> c) -> a -> b -> c检验:描述一下它的类型
id :: a -> a然后这是类型啊,编程也很简单,比如有
id x = x
add1 :: Int -> Int 和 multiply :: Int -> Int -> Int
实现了 (x+1) 和 (x*y) 就可以定义 times10p1 :: Int -> Int
times10p1 x = add1 (multiply 10 x)当然有魔法的版本,Haskell 的语法很灵活
times10p1 = add1 . (multiply 10)这就是说:(add1) 和 (multiply 10) 都是
Int -> Int (有 currying)(currying 就是)
m10 = multiply 10然后可以
m10 10 == 100
(.) :: (Int -> Int) -> (Int -> Int) -> (Int -> Int)
拿到 times10p1 这样子times10p1 = add1 . (multiply 10)函数式编程主张使用可拆分的定义组织你的程序,基本元素越简单越好
where
add1 = (+1)
multiply = (*)
Haskell 的基础 Lambda 演算就只有三种项:
x: variable
(λx. x): abstraction
(f x): application
当然还有一个上下文 Γ(Gamma) 也就是 Haskell 里的
where... / let...in
两种基本操作:β(beta)-reduction 和 α(alpha)-conversation (性质就是 alpha-equivalence)就“实现了一门编程语言”
啊我找到了个很赞的教程
此外,一个范畴(category) 还有以下属性(要不然就和图没有区别了)
+ 封闭律:态射可以组合
y ~> z => x ~> y => x ~> z+ 结合律(associative):态射的组合具有结合性
(x · y) · z = x · (y · z)只满足以上两点的图被称为半群(semigroup)
+ 同一律:有一个箭头
a -> a 指向对象自己态射就是状态的创建者。对象本身是多级态射构造出的映射组合
class Category (c :: * -> * -> *) where当
(.) :: (c y z) -> (c x y) -> (c x z)
id :: c a a
c = (->) 的时候,就是class Category (c :: * -> * -> *) whereclass 定义 Haskell 的 typeclass,它给某个类型定义上面操作的规范(然后可以有
(.) :: (c y z) -> (c x y) -> (c x z)
id :: forall a. c a a
type Hask = (->) :: * -> * -> *
instance Category Hask where
(f . g) x = f (g x)
instance)后面的
where 跟着一群成员函数的类型签名forall a. c a a 的意思是这里的 a 可能是很多种类型,比如 Int, String, Float
所以说是『对于所有』 a 都有 id :: c a a
id :: a -> a 可以视为 id :: forall a. a -> a
箭头也可以用来指代对象,毕竟对象都是 (Monoid) 箭头从 id :: a 态射来的(比如 Nat 的 id=0, add1 = (+1))
data Nat = O | S Nat 的 id 就是它的架构器 O :: Nat, add1 箭头就是 S :: Nat -> Nat
addOne = S :: Nat -> Nat
two = addOne O
seven = let addFive = S . S . S . S . addOne in addFive twoadd1, mutiply, id 都是对象之间的态射,可是范畴之间也可以存在态射的变换
class (Category c, Category d) => Functor t c d where然后就把箭头们映射到了新范畴,比如
fmap :: (c a b) -> d (t a) (t b)
(String -> Int) 变成 List String -> List Int?在 C, D 都是
(->) 的情况下class Functor t where
fmap :: (a -> b) -> t a -> t b
这样的个 typeclass,把 ("1" -> 1), (["a"] -> "a") 弄成什么的....
范畴只是抽象而已,然后 类型的变化 也是一种实例 或许
Monad 是自函子(Endofunctor) 范畴上的含宏半群(Monoid)
自函子 就是从范畴到同一个范畴的 函子
type Endofunctor t c = Functor t c c然后 flatMap 就 怎么办 呢?
class Endofunctor t c => Monad m c where
eta :: a -> m a
mu :: m m a -> m a
我们可以先
fmap :: ... -> d (t a) (t b) 了,再去 mu 一下(>>=) :: Monad m => m a -> (a -> m b) -> m b代码是从那个 grokking monad 抄袭的
m >>= f = (mu . eta :: forall a. m a -> m b) . fmap f m
所以有偏差 我不负泽(
总之我很辣鸡 然后什么都 不知道 对不起....
brilliant.org
Lambda Calculus | Brilliant Math & Science Wiki
The Lambda calculus is an abstract mathematical theory of computation, involving ...
/tmp/duangsuse.sock
先说一个无聊的做铺垫: 1. 走路的分段速度和音频流处理的窗口 (作者对信号处理和物理学都是外行,如果有发现错误请务必指出) 关于速度的计算,有一个问题,就是现实中我们无论如何也无法得知确切的瞬时速度。 所以就有了按时间段计算:路程/时间 = 速度 一般情况下都认为路程和时间都是连续的(无法分割为可枚举的一堆值阶或者集合什么的) 只要取到了一定的精度,实际上就可以认为是『瞬时的』速度。 信号处理也是一个道理,针对某一种需要一定量信号的算法,也可以指定一个比较大的窗口大小,执行实际处理,而不需要针对…
This media is not supported in your browser
VIEW IN TELEGRAM
qnmd,以为所有人都只是在这里,desktop 和 web 对正在编辑的内容都不能保证安全,同步经常出现失败和内容被覆盖的情况!这是不能叫好应用的!
/tmp/duangsuse.sock
#life #Book 小说推荐 《茶花女》 名著、爱情、悲剧、法国、老故事、一颗赛艇 很喜欢里面男主和女主的故事,非常敬佩女主茶花女 《天贼》(Hot Dream) 科幻、宇宙、未来、批判性 《魔道祖师》 网络小说、修仙 是蛮一颗赛艇的,不过自控力不好就别看了,错别字也有一些,作者拼音打的 《白夜行》 日本、侦探、小说、悲剧、崩坏 《嫌疑人 χ 的献身》 日本、侦探、小说、学者、悲剧、崩坏 《悖论 13》 日本、侦探、小说、灾难、科幻 《侦探俱乐部》 日本、侦探、小说、日常 《》
#Life #Book 小说推荐
原版因为网络不稳定,被 Telegram Desktop 盲目地覆盖了,丢失了所有内容。
因为是我记忆枚举出来的,所以不保证列全。
== 小说 ==
《茶花女》 名著、爱情、悲剧、法国、老故事、一颗赛艇
很喜欢里面男主和女主的故事,非常敬佩女主茶花女
《大卫·科波菲尔》男主的励志故事?
《天贼》(Hot Dream) 科幻、宇宙、未来、批判性
《魔道祖师》 网络小说、修仙
是蛮一颗赛艇的,不过自控力不好就别看了,省得到时候骂我推荐这种辣鸡... 错别字也有一些,作者拼音打的。
《御品糖心》有点意思,此外《主子不好啦》(好像是这个名字)也有点意思
《白夜行》 日本、侦探、小说、悲剧、崩坏
《嫌疑人 χ 的献身》 日本、侦探、小说、学者、悲剧、崩坏
《悖论 13》 日本、侦探、小说、灾难、科幻
《侦探俱乐部》 日本、侦探、小说、日常
《哑舍》故事和创意都不错
《浮生物语》类似上面的
然后我还记得有本言情写某女明星和一个博物馆长的... 博物馆长家还有两条狗炸鸡可乐,忘了叫啥名
== 杂志 ==
《英语街》
连载的故事很不错,学英语的话可不能只看翻译。
OpenClass 《课堂内外》
不错的课外读物,虽然好像涉及追星内容比较多
《我们爱科学》
现在的科普杂志比较多,其实也不止这一个可以选,应该自己挑喜欢的
内容符合胃口和质量高优先
《实用文摘》
这是相当干货的杂志了
《儿童文学》
纪念一下文革中被打成反动?的东西
== 漫画 ==
《快把我哥带走》 校园
哥哥时分和妹妹十秒的愉悦日常,头条都是他/她
现在也有动画版本,不重复了
《昨日青空》 校园 倒叙 少年
当然,不过动画版就得加一个耽⃥美⃥
《缘之空》(划掉)
《冲绳萝莉岛》(删除)
《女装山脉》(x
== 动画 ==
《火影忍者》 日本 忍者 少年
与《海贼王》和《死神》并称的三大中国民工漫之一,
720 集啊,还有好多 OVA,主要的《疾风传》和《火影忍者》已经完结
(写死了一个作者了都)划掉
不过还有《博人传》在更
《黑子的篮球》 日本(我在考虑有没有必要写这个标签) 运动 少年
画风比《灌篮高手》好不少,不过所谓少年漫嘛,特技、buff 甚至超能力都是必备的(当然还有发色牛逼定律
(胡说,明明是看颜值
可怜的肥宅们看一集被秀一集,然后生活中只能自卑惹... 祸害人类
《刃牙》 又来祸害人类了
《干物妹!小埋》炒冷饭
《魔法禁书目录》和《某科学的超电磁炮》 少女?(
著名的电击文库改编系列,据说最近有《某科学的一方通行》出品,恭迎老大爷
《刺客五六七》 中国 忍者 散式
画风不错,故事底蕴也很大
(又一个卖歌的动漫)划掉
《罗小黑战记》 中国 动物
画风可爱,据说最近也要有电影出了
《LoveLive》 和 《LoveLive Sunshine!!!》
论女子高中生如何成为偶像拯救学校
《齐木楠雄的灾难》主音和《黑子》的奇迹队队长赤司是一个人,经常被同人混在一起 **
《喜欢恶作剧的高木同学》 秀恩爱
《罪恶王冠》末日 基因 组织 黑/白
== 音乐 ==
《New Soul》
《Dream It Possible》
《Try Everything》
《Frozen》
《星之所在》
《虽然歌声无形》
《夕日坂》
《心理作用》
《Bad Apple》
《Only My Railgun》
《打上花火》
《云烟成雨》
《secret base(未问花名)》
《POP/STARS (英雄联盟)》
《暖暖》
《好想你》
《吉祥三宝》
《Lemon Tree》
《初音未来的消失》
《再见,昨天》 牛奶咖啡
《文乃的幸福理论》
《ECHO (GUMI)》
《明天会更好》
《虫儿飞》
《卡路里》
《九九八十一》 应该都知道
《听妈妈的话》 《心形气球》
原版因为网络不稳定,被 Telegram Desktop 盲目地覆盖了,丢失了所有内容。
因为是我记忆枚举出来的,所以不保证列全。
== 小说 ==
《茶花女》 名著、爱情、悲剧、法国、老故事、一颗赛艇
很喜欢里面男主和女主的故事,非常敬佩女主茶花女
《大卫·科波菲尔》男主的励志故事?
《天贼》(Hot Dream) 科幻、宇宙、未来、批判性
《魔道祖师》 网络小说、修仙
是蛮一颗赛艇的,不过自控力不好就别看了,省得到时候骂我推荐这种辣鸡... 错别字也有一些,作者拼音打的。
《御品糖心》有点意思,此外《主子不好啦》(好像是这个名字)也有点意思
《白夜行》 日本、侦探、小说、悲剧、崩坏
《嫌疑人 χ 的献身》 日本、侦探、小说、学者、悲剧、崩坏
《悖论 13》 日本、侦探、小说、灾难、科幻
《侦探俱乐部》 日本、侦探、小说、日常
《哑舍》故事和创意都不错
《浮生物语》类似上面的
然后我还记得有本言情写某女明星和一个博物馆长的... 博物馆长家还有两条狗炸鸡可乐,忘了叫啥名
== 杂志 ==
《英语街》
连载的故事很不错,学英语的话可不能只看翻译。
OpenClass 《课堂内外》
不错的课外读物,虽然好像涉及追星内容比较多
《我们爱科学》
现在的科普杂志比较多,其实也不止这一个可以选,应该自己挑喜欢的
内容符合胃口和质量高优先
《实用文摘》
这是相当干货的杂志了
《儿童文学》
纪念一下文革中被打成反动?的东西
== 漫画 ==
《快把我哥带走》 校园
哥哥时分和妹妹十秒的愉悦日常,头条都是他/她
现在也有动画版本,不重复了
《昨日青空》 校园 倒叙 少年
当然,不过动画版就得加一个耽⃥美⃥
《缘之空》(划掉)
《冲绳萝莉岛》(删除)
《女装山脉》(x
== 动画 ==
《火影忍者》 日本 忍者 少年
与《海贼王》和《死神》并称的三大中国民工漫之一,
720 集啊,还有好多 OVA,主要的《疾风传》和《火影忍者》已经完结
(写死了一个作者了都)划掉
不过还有《博人传》在更
《黑子的篮球》 日本(我在考虑有没有必要写这个标签) 运动 少年
画风比《灌篮高手》好不少,不过所谓少年漫嘛,特技、buff 甚至超能力都是必备的(当然还有发色牛逼定律
(胡说,明明是看颜值
可怜的肥宅们看一集被秀一集,然后生活中只能自卑惹... 祸害人类
《刃牙》 又来祸害人类了
《干物妹!小埋》炒冷饭
《魔法禁书目录》和《某科学的超电磁炮》 少女?(
著名的电击文库改编系列,据说最近有《某科学的一方通行》出品,恭迎老大爷
《刺客五六七》 中国 忍者 散式
画风不错,故事底蕴也很大
(又一个卖歌的动漫)划掉
《罗小黑战记》 中国 动物
画风可爱,据说最近也要有电影出了
《LoveLive》 和 《LoveLive Sunshine!!!》
论女子高中生如何成为偶像拯救学校
《齐木楠雄的灾难》主音和《黑子》的奇迹队队长赤司是一个人,经常被同人混在一起 **
《喜欢恶作剧的高木同学》 秀恩爱
《罪恶王冠》末日 基因 组织 黑/白
== 音乐 ==
《New Soul》
《Dream It Possible》
《Try Everything》
《Frozen》
《星之所在》
《虽然歌声无形》
《夕日坂》
《心理作用》
《Bad Apple》
《Only My Railgun》
《打上花火》
《云烟成雨》
《secret base(未问花名)》
《POP/STARS (英雄联盟)》
《暖暖》
《好想你》
《吉祥三宝》
《Lemon Tree》
《初音未来的消失》
《再见,昨天》 牛奶咖啡
《文乃的幸福理论》
《ECHO (GUMI)》
《明天会更好》
《虫儿飞》
《卡路里》
《九九八十一》 应该都知道
《听妈妈的话》 《心形气球》
Forwarded from Deleted Account
🤔 LinkedBlockingQueue? 这个玩意首先是某种 BlockingQueue, 然后它是 Linked 实现的
Queue 就是项的队列,队列有两个端点,一端入一端出,一般认为是从『左边』出『右边』入
所以有 C++ 的 std::vector(template class) 的 pop_left 和 push_back 操作
然后实现 可能是这样?
Queue 就是项的队列,队列有两个端点,一端入一端出,一般认为是从『左边』出『右边』入
所以有 C++ 的 std::vector(template class) 的 pop_left 和 push_back 操作
BlockingQueue<T> 应该有个操作synchronized T blockingPop(); 实现了线程安全的可能阻塞(waiting)的 pop 方法吧?然后实现 可能是这样?
interface Queue<T> {
T pop();
void push(T value);
int length();
}
interface BlockingQueue<T> extends Queue<T>, Serializable {
synchronized T blockingPop();
}
实现 Java 写太冗长,Kotlin 好(Scala 也很好class LinkedBlockingQueue<T>(): BlockingQueue {
private sealed class Node<out T>
private object Nil : Node<Nothing>()
private data class Link<T>(val x : T, val xs : Node<T>) : Node<T>()
protected var link : Node = Nil
protected var len: Int
val length: Int get() = this.len
private fun len(n: Int) { len += n }
override fun push(x : T) { this.link = Link(x : link); len(1) }
override fun pop(): T? { if (link == Nil) { return null } else val head = link.x; return x.also { link = link.xs; len(-1) } }
override fun blockingPop() { while (len == 0); return pop(); }
companion object { private val serialVersionUID: Long = 0; }
}
Deleted Account
🤔 LinkedBlockingQueue? 这个玩意首先是某种 BlockingQueue, 然后它是 Linked 实现的 Queue 就是项的队列,队列有两个端点,一端入一端出,一般认为是从『左边』出『右边』入 所以有 C++ 的 std::vector(template class) 的 pop_left 和 push_back 操作 BlockingQueue<T> 应该有个操作 synchronized T blockingPop(); 实现了线程安全的可能阻塞(waiting)的 pop…
批判一下, 这个实现是错误的... 我的确是没有注意到对 Link 的使用方式实现了一个 LIFO... Queue 是 FIFO 的
Forwarded from 芝士和培根 (Yuuta⠀)