这些代码行对这个 APL 变量的数据类型有什么改变?
What changes about the data type of this APL variable with these lines of code?
我正在从 APL 写一个文本文件。
我的 APL 脚本中有一个定义为 UMMB 的字符矩阵,它用于此文本文件的正文。
我能够使用此变量作为正文成功调用我的 .txt 文档编写函数。
然而,当我执行以下操作时:
k←⊂⍕UMMB
m←⊂'<html><body><table>'
n←⊂'</html></body></table>'
k←m,k,n
并且我使用变量 k 作为主体而不是 UMMB,每次运行此函数时都会出错。我也尝试在上面所有行的末尾包含 k,但无济于事。
与我的函数不喜欢的 UMMB 相比,k 的定义有何不同?
(我没有这个函数的源代码和文档,只能瞎调用。)
编辑:我尝试了 Adam 关于使用 split 函数的建议:
↓
但事实证明,我在其中使用 APL 编辑器的程序无法将此识别为拆分功能,而是 'drop function,' 此处详述:
我似乎无法找到此版本 APL 的 split 等价物。
⍕UMMB
是一个简单的字符矩阵,但您最终的 k
最终成为一个向量、矩阵和向量的 3 元素向量。您可能需要构建一个简单的字符矩阵。由于我不知道你使用的是什么APL系统,这里有一个应该通用的版本:
k←⍕UMMB ⍝ simple character matrix where ⍕ may be unnecessary
m←'<html><body><table>' ⍝ simple character vector
n←'</html></body></table>' ⍝ simple character vector
w←(1↓⍴k)⌈(⍴m)⌈(⍴n) ⍝ max width of k and m and n
kw←((1↑⍴k),w)↑k ⍝ extend k to that width
mw←w↑m ⍝ extend m to that width
nw←w↑n ⍝ extend n to that width
k←mw,[⍳1]kw,[⍳1]nw ⍝ stack the three
旁注: 我建议不要重复使用变量名,因为它会阻止您返回并检查原始值是什么。
另一种方法是将字符矩阵拆分为一个字符向量向量,然后将另外两个附加到两端。然后就可以用Disclose把它变回字符矩阵了:
k←⊂[1+⎕IO]⍕UMMB
m←⊂'<html><body><table>'
n←⊂'</table></body></html>'
k←⊃m,k,n
(我冒昧地将table
和body
换成了n
。)
我正在从 APL 写一个文本文件。 我的 APL 脚本中有一个定义为 UMMB 的字符矩阵,它用于此文本文件的正文。 我能够使用此变量作为正文成功调用我的 .txt 文档编写函数。
然而,当我执行以下操作时:
k←⊂⍕UMMB
m←⊂'<html><body><table>'
n←⊂'</html></body></table>'
k←m,k,n
并且我使用变量 k 作为主体而不是 UMMB,每次运行此函数时都会出错。我也尝试在上面所有行的末尾包含 k,但无济于事。
与我的函数不喜欢的 UMMB 相比,k 的定义有何不同?
(我没有这个函数的源代码和文档,只能瞎调用。)
编辑:我尝试了 Adam 关于使用 split 函数的建议:
↓
但事实证明,我在其中使用 APL 编辑器的程序无法将此识别为拆分功能,而是 'drop function,' 此处详述:
我似乎无法找到此版本 APL 的 split 等价物。
⍕UMMB
是一个简单的字符矩阵,但您最终的 k
最终成为一个向量、矩阵和向量的 3 元素向量。您可能需要构建一个简单的字符矩阵。由于我不知道你使用的是什么APL系统,这里有一个应该通用的版本:
k←⍕UMMB ⍝ simple character matrix where ⍕ may be unnecessary
m←'<html><body><table>' ⍝ simple character vector
n←'</html></body></table>' ⍝ simple character vector
w←(1↓⍴k)⌈(⍴m)⌈(⍴n) ⍝ max width of k and m and n
kw←((1↑⍴k),w)↑k ⍝ extend k to that width
mw←w↑m ⍝ extend m to that width
nw←w↑n ⍝ extend n to that width
k←mw,[⍳1]kw,[⍳1]nw ⍝ stack the three
旁注: 我建议不要重复使用变量名,因为它会阻止您返回并检查原始值是什么。
另一种方法是将字符矩阵拆分为一个字符向量向量,然后将另外两个附加到两端。然后就可以用Disclose把它变回字符矩阵了:
k←⊂[1+⎕IO]⍕UMMB
m←⊂'<html><body><table>'
n←⊂'</table></body></html>'
k←⊃m,k,n
(我冒昧地将table
和body
换成了n
。)