duangsuse::Echo
711 subscribers
4.23K photos
127 videos
583 files
6.44K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from dnaugsuz
🤔 这样啊,那么我再举个栗子

def zip_with_next(xs: iter):
a = next(xs)
while True:
try: b = next(xs)
except StopIteration: break
yield (a, b); a = b

def generate_chain(initial_base, get_item, next_base):
base = initial_base
while True:
try:
yield get_item(base)
base = next_base(base)
except Exception: break

links = ("a", ("b", "c"))
flat_links = generate_chain(links, lambda t: t[0], lambda t: t[1])

list(flat_links) == ['a', 'b', 'c']

那么只需 list(zip_with_next(flat_links)) == [('a', 'b'), ('b', 'c')]
可以拿到上一项引用?(对于 1,2 项只需 zip_with_next([initial] + ) 即可指定初始项目)
#Python https://nasy.moe/Hana/Python/python-001/
Python 里 '(' 也可以开启一个布局
Python 里 \ 可以对换行进行转义
#Blender 有意思,布料弹簧
下面有个 plane,是靠位置变换动画来做到 刺激上面的布料 的
🤔 以前不懂事的时候连 callback 都无法理解,现在想想 callback 就是组合出 Task 的一种方式
Java 的 anonymous subclass instance 可以 capture 到 effective final 的 局部变量,从而能够把必须的一些信息(如当前用户什么的)给密封到 Task 的结束部分里;整个 Task 则是由库代码和用户代码共同构成的。

这个操作必须依赖闭包才能完整实现,否则许多情况下 callback 就没法实用了。
不用 Task 设置 then 操作的话,强行依赖返回值会必要求值时阻塞,影响线程里其他任务的工作
所以可以用 await/async,自动把嵌套回调利用可暂停执行的函数,“转化”为 callback 的形式,依然可以保留原有的串行风格
#JavaScript
async function _guess(text) {
clearTimeout(_guess.timer);
_guess.timer = setTimeout(guess.bind(this, text), 300);
};

我想限制一个操作的频率,延时 300ms 一次,若没有新调用则实际操作。
如果我想用 async function 而不是更无结构化的 callbacks,该如何实现?
duangsuse::Echo
#JavaScript async function _guess(text) { clearTimeout(_guess.timer); _guess.timer = setTimeout(guess.bind(this, text), 300); }; 我想限制一个操作的频率,延时 300ms 一次,若没有新调用则实际操作。 如果我想用 async function 而不是更无结构化的 callbacks,该如何实现?
我现在想到了一种用面向对象封装和 if 判断-提前返回的方法,可以等价替换掉 clearTimeout / setTimeout

……不行,它不能保证结果是最后一次调用的
看来 JavaScript 还是必须 Promise 封装和 await/async 并用才可以。
弄了这么久,简直是笑话…… NPM/TypeScript/WebPack
from jieba import cut
from pinyin.pinyin import get

def inputting(text):
''' 获得文本中单词的拼音首字母缩写 '''
words = cut(text)
return ''.join([get(word)[0] for word in words])

需要 flatten 才能拿到每个字的缩写,看起来我是写复杂了。
不过实际上,pinyin 已经支持这个了……

from pinyin import pinyin
def inputting(text): return pinyin.get_initial(text).replace(' ', "")

这样的话,基于一个 tokenizer 实例,可以自动猜测性录入一些缩写进去,当然也可以手动录入。
最开始我还觉得是 words.map(::pinyin).joinToString("") { it.first() }🤔
垃圾 NPM 的 script 方式连 incremental build 都没有
This media is not supported in your browser
VIEW IN TELEGRAM
我被 GitHub 的细节更新感动了。或许操作系统不能保证休眠不会无法 resume,但应用程序能保证你输入的东西不会丢失,这就足够了……
This media is not supported in your browser
VIEW IN TELEGRAM