All checks were successful
Build / build (push) Successful in 10m17s
1.2 KiB
1.2 KiB
date
date |
---|
2025-08-21 11:55 |
増井俊之が考案した、キーボード入力の履歴の中から繰り返し動作を自動で検出して再実行できるようにする仕組み
実装が非常にシンプル。Atom用拡張機能の実装がわかりやすい
#
# Detect repeated elements at the end of an array
#
# findRep [1,2,3] # => []
# findRep [1,2,3,3] # => [3]
# findRep [1,2,3,1,2,3] # => [1,2,3]
# findRep [1,2,3,3,1,2,3,3] # => [1,2,3,3]
# findRep [1,2,3], (x,y) -> x+1 == y # => [3]
#
findRep: (a,compare) ->
compare = compare ? (x,y) -> x == y
len = a.length
res = []
for i in [0...len/2]
for j in [0..i]
break unless compare(a[len-2-i-j], a[len-1-j])
res = a[len-j..len-1] if i == j-1
res
配列を二分探索して、一番長い要素を検出?