gpt4 book ai didi

ubuntu - 标准输入的重定向似乎改变了 Dyalog APL 程序的行为(当使用名为 dyalog 的符号链接(symbolic link)调用 mapl 时)

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:56 27 4
gpt4 key购买 nike

我正在尝试学习 APL(一般的 APL 和 Dyalog APL,它似乎正在积极开发中并在斯德哥尔摩这里使用)。

这样做时,我观察到,在我的 Ubuntu Linux 环境中,dyalog(实际上是一个名为 mapl 的文件,可通过名为/usr/bin/dyalog 的符号链接(symbolic link)访问)在使用 stdin 时似乎表现不同与管道或打开的磁盘文件而不是终端驱动程序相关联。

当我将终端驱动程序替换为管道作为标准输入时,解释器似乎不再理解 ]DISPLAY。

此处 ]DISPLAY 命令/函数似乎有效:

Command: dyalog without arguments or stdin redirection :

Dyalog APL/S-64 Version 16.0.30320
Unicode Edition
Mon Aug 14 19:27:14 2017
]DISPLAY 42

42

在这里,解释器似乎对 ]DISPLAY 感到困惑:

root@lenovo201707:/home/u/20170814# ( echo "]DISPLAY 42" ; echo ")off" ) |         dyalog
Dyalog APL/S-64 Version 16.0.30320 Unicode
For i86_64
Created: Jul 7 2017 at 02:48:48
Copyright (c) Dyalog Limited 1982-2017
]DISPLAY 42

VALUE ERROR
root@lenovo201707:/home/u/20170814#

从现有的 UTF-8 编码文件加载和执行我的 APL 代码时,有没有一种简单的方法不会丢失 ]DISPLAY 函数?

致以诚挚的问候!汉斯·戴维森

最佳答案

更新的答案:以下应该可以解决您的请求:

( echo "]DISPLAY 42" ; echo ")off" ) |  /opt/mdyalog/16.0/64/unicode/mapl salt  

唯一改变的细节是我们现在在尝试执行 UCMD 之前加载 salt-workspace。 SALT 将(通过其 ⎕LX)设置环境,以便它可以处理 UCMD。

我的初始回复:我是 Windows 用户,必须承认我从未使用过 Linux Pipes,所以我无法帮助了解一般机制。

但是我对具体问题有一个答案。 ]DISPLAY:您可以使用 ⎕se.UCMD'{ucmd & args}' 在程序控制下调用任何 UCMD,例如:⎕se.UCMD'显示 ⍳3 3'

顺便说一句,我个人调用 ⎕se.Dyalog.Utils.disp MyVar,它避免了 UCMD 机制,并且在从 fn 调用时更容易使用。

关于ubuntu - 标准输入的重定向似乎改变了 Dyalog APL 程序的行为(当使用名为 dyalog 的符号链接(symbolic link)调用 mapl 时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45692159/

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