gpt4 book ai didi

arguments - `{⊂⍵}` 与 `⊂` 有何不同?

转载 作者:行者123 更新时间:2023-12-03 14:14:25 24 4
gpt4 key购买 nike

我正在阅读Hui 和Kromberg 最近的"APL Since 1978"并在 的讨论中(模板)他们给出了以下示例:

      {⊂⍵}⌺5⊢'abcde'
abc abcd abcde bcde cde
为什么是 {⊂⍵}只需要 ?我对 APL 还是很陌生,但我天真地认为一般来说 {f⍵}应该等同于 f当被单次调用时。
根据经验,我可以看到情况并非如此:
      ⊂⌺5⊢'abcde'
DOMAIN ERROR
⊂⌺5⊢'abcde'

但我不明白为什么。

最佳答案

你说得对{⊂⍵}相当于 当被单次调用时,但是根据 the documentation :

f is invoked dyadically with a vector left argument indicating for each axis the number of fill elements and on what side; positive values mean that the padding precedes the array values, negative values mean that the padding follows the array values.


我们可以通过让函数同时返回两个参数的 shell 来说明这一点:
      {⊂⍺ ⍵}⌺5⊢'abcde'
┌─────────┬─────────┬─────────┬──────────┬──────────┐
│┌─┬─────┐│┌─┬─────┐│┌─┬─────┐│┌──┬─────┐│┌──┬─────┐│
││2│ abc│││1│ abcd│││0│abcde│││¯1│bcde │││¯2│cde ││
│└─┴─────┘│└─┴─────┘│└─┴─────┘│└──┴─────┘│└──┴─────┘│
└─────────┴─────────┴─────────┴──────────┴──────────┘
此左参数旨在满足作为 的左参数的要求。因此可以轻松删除添加的填充:
      {⊂⍺↓⍵}⌺5⊢'abcde'
┌───┬────┬─────┬────┬───┐
│abc│abcd│abcde│bcde│cde│
└───┴────┴─────┴────┴───┘
如果你想要一个默认操作数而不是 {⊂⍵}那么你可以使用 ⊢∘⊂ (相当于 {⍺⊢⊂⍵} ,因此是 {⊂⍵} )或者,在 18.0 版中, ⊂⍤⊢ (相当于 {⊂⍺⊢⍵} ,因此是 {⊂⍵} )。

关于arguments - `{⊂⍵}` 与 `⊂` 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62622618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com