duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from NekoOverflow
let 您的群组地位升级成;(您的群组地位升级成 = () => 您的群组地位升级成())()
Forwarded from NULL
賦值語句居然會回傳賦值!!
Forwarded from dnaugsuz
怎么可能不呢?不是C Style的呢
Forwarded from dnaugsuz
不过这也有点牛逼 f=()=>f() 都能用
Forwarded from dnaugsuz
噢,我想起来了,那是JavaScript不是Kotlin
Forwarded from dnaugsuz
()=>f() 里面的 f 作用域解析是动态的,所以不会找不到引用
在 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 记挂
Forwarded from 记挂
Forwarded from undefined + 1 = NaN
請在 Python 寫出一個最簡短能左右翻轉文字的指令。
Forwarded from dnaugsuz
from re import sub
print(sub('p', 'q', input()))


嗯…… 其实应该用 str.translate
Forwarded from dnaugsuz
AWK 里是 gsub,我估计它是 generalize subtract 的缩写
至于为什么开始少写了一个参数,我忘记了是应该有 pattern-replacement 的。

光是靠 sub(regex, replacement, text) 好像是不可以,毕竟你不能给一个子 pattern 指定多个 replacement。
Forwarded from undefined + 1 = NaN
其實只要 "test"[::-1] 就好
Forwarded from dnaugsuz
不是,你不是说那个 p -> q '{' -> '}' 的翻转吗?
Forwarded from dnaugsuz
你知道这个语法是在表达什么吗?
Forwarded from dnaugsuz
在 Kotlin 里,这个语法是这么表达的(举个例子):
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 undefined + 1 = NaN
"abc"[::-1][::-1] == '?'
Forwarded from dnaugsuz
不是吧,是不是 lambda x: x 的意思啊?rev rev id 可是逻辑式编程和计算机辅助定理证明的入门例子呢

另外 ::n 好像这个语法也被 TCP 使用了?那它就更不该经常在实际项目里用了,切记啊。