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。Forwarded from dnaugsuz
在 Kotlin 里,这个语法是这么表达的(举个例子):
使用的方法是 Kotlin 的 Progression,趋势数列,也就是可以有(负数) step 的区间迭代
val text = "hello"
val reversed = text.fold(StringBuilder()) { sb, c -> } // 打住,好像我不是这个意思……
val reversed = StringBuilder()
for (charIndex in text.lastIndex downTo 0 step 1) // 这就是 text[beg:stop:-1] 的意思,step=-1 -> downTo 1
reversed.append(text[charIndex])
println(reversed) 使用的方法是 Kotlin 的 Progression,趋势数列,也就是可以有(负数) step 的区间迭代
Forwarded from dnaugsuz
一般来说好像不要用这个语法,因为不知道它的人会感到困扰,如果是实践就用 reversed 吧。
Forwarded from dnaugsuz
不是吧,是不是
另外
lambda x: x 的意思啊?rev rev id 可是逻辑式编程和计算机辅助定理证明的入门例子呢另外
::n 好像这个语法也被 TCP 使用了?那它就更不该经常在实际项目里用了,切记啊。