直到并包括第一个重复项的所有列表项
All list items up to, and including, the first repeated item
考虑:
x =. 0 1 2 3 4 1 3 4 99
v =. [ {.~ (>: @ i.&1 @ (#@~. = #\))
v x NB. => 0 1 2 3 4 1
行为正确。但如您所见,v
冗长得令人羞耻。有更好的解决方案吗?
你想要 monad ~:
(nub sieve):
v =: {.~ 1 + 0 i.~ ~:
x =: 0 1 2 3 4 1 3 4 99
v x
0 1 2 3 4 1
代码审查:
- 在 code-golf 上下文之外,不要使用
#\
代替 i.@#
。太萌了,难维护,特殊代码优化器识别不到。
- 不要分配给名称
x
、y
、u
、v
、m
或 n
(除了在特殊情况下,并且始终在本地显式上下文中)。
考虑:
x =. 0 1 2 3 4 1 3 4 99
v =. [ {.~ (>: @ i.&1 @ (#@~. = #\))
v x NB. => 0 1 2 3 4 1
行为正确。但如您所见,v
冗长得令人羞耻。有更好的解决方案吗?
你想要 monad ~:
(nub sieve):
v =: {.~ 1 + 0 i.~ ~:
x =: 0 1 2 3 4 1 3 4 99
v x
0 1 2 3 4 1
代码审查:
- 在 code-golf 上下文之外,不要使用
#\
代替i.@#
。太萌了,难维护,特殊代码优化器识别不到。 - 不要分配给名称
x
、y
、u
、v
、m
或n
(除了在特殊情况下,并且始终在本地显式上下文中)。