Forwarded from dnaugsuz
> /<(.*)>/.exec("<abc><def>")
[ '<abc><def>',
'abc><def',
index: 0,
input: '<abc><def>',
groups: undefined ]
> /<(.*)>/y.exec("<abc><def>")
[ '<abc><def>',
'abc><def',
index: 0,
input: '<abc><def>',
groups: undefined ]
弄错了,应该是VSCode的默认和其他有些不一样Forwarded from NekoOverflow
let 您的群组地位升级成;(您的群组地位升级成 = () => 您的群组地位升级成())()
Forwarded from dnaugsuz
()=>f() 里面的 f 作用域解析是动态的,所以不会找不到引用
在 Kotlin 写递归函数是可以的,可是这样的变量是不可能的,比如
在 Kotlin 写递归函数是可以的,可是这样的变量是不可能的,比如
val f: () -> Unit = { f() }
就不行error: variable 'f' must be initialized
val f: () -> Unit = { f() }
^
Forwarded from dnaugsuz
typealias PredicateOn<T> = T.() -> Boolean
typealias Producer<R> = R
fun <R> retry(n: Int, terminate: PredicateOn<T> = { true }, op: Producer<R?>): R? {
for (_i in 1..n) {
val res = op() ?: return null
if (terminate(res)) return res
}
return null
} 这么写岂不是也可以……
骚操作一点(不建议)甚至可以这么写
fun <R> retry(n: Int, terminate: PredicateOn<T> = { true }, op: Producer<R?>): R? {
for (_i in 1..n) {
val res = op() ?: return null
res.takeIf(terminate)?.let { return it }
}
return null
} 写成Java一样意义不明的风格是哪般……
真鼓吹数学的人都去学抽象代数机器证明了,次一点的也搞范畴论Monad学descriptive甚至逻辑式去了,应用编程就写好看点,为什么起名字喜欢起数学糟粕形式的名字……
难道还真应验了王某人的那句话『你越是看不懂越觉得自己智商低、越觉得我牛逼』……
也可以 functional inline
加个 inline 就行,然后如果报错就继续加 crossinline……
Forwarded from dnaugsuz
from re import sub
print(sub('p', 'q', input())) 嗯…… 其实应该用
str.translate 的Forwarded from dnaugsuz
AWK 里是 gsub,我估计它是 generalize subtract 的缩写
至于为什么开始少写了一个参数,我忘记了是应该有 pattern-replacement 的。
光是靠
至于为什么开始少写了一个参数,我忘记了是应该有 pattern-replacement 的。
光是靠
sub(regex, replacement, text) 好像是不可以,毕竟你不能给一个子 pattern 指定多个 replacement。