Dyalog APL:如何编写可以执行的独立文件



我现在知道如何使用APL解释器,但我对如何将APL写入文件并运行所述文件感到困惑。我目前使用IDE编写Dyalog APL。我现在想做的是:

  1. 使用ride IDE开发程序(否则我如何访问密钥绑定?(
  2. 将我的程序保存到文件中
  3. 使用命令行参数从命令行运行程序(如何获取命令行参数?(
  4. 分发我的程序,以便其他人可以使用它们

大多数在线文档都提到了"APL会议",这让我觉得可能会有一些类似Smalltalk的事情发生,人们只能分发"实时图像"或类似的东西。如果是这样的话,我有一组不同的问题:

  1. 如何保存和加载这些图像文件
  2. 如何分发图像文件
  3. 我可以从命令行执行这样的代码来获取命令行参数吗

总的来说,我很困惑如何在APL中编写软件

编辑:我在Ubuntu上,我想把目标锁定在Linux上。Windows/macOS支持将是一个加分项,但我目前对Linux支持感兴趣。

目前,创建独立可执行文件(单个.exe文件(的功能仅在Windows上存在,但Dyalog正在努力使这成为跨平台的可能。然而,你可以非常接近。在我们开始之前,让我回答你最初的问题:

  1. 使用ride IDE开发程序(否则我如何访问密钥绑定?(

有几种方便的方法可以在RIDE之外输入字形,既可以通过编辑器扩展,也可以通过单独的系统范围的前缀和/或移位键输入方法。有关详细信息,请参阅APLWiki关于键入字形的文章。

  1. 使用命令行参数从命令行运行程序(如何获取命令行参数?(

⊢2⎕NQ#'GetCommandLineArgs'返回用于启动当前应用程序的命令和参数。这可以跨平台工作。在Linux下在线试用!


;实时图像";您所谈论的将是APLers所称的工作区。一旦你的应用程序按你想要的方式工作,输入并设置⎕LX(Latent ePressure(变量为一个语句,该语句启动你的应用,然后在完成后关闭APL,例如⎕LX←'myApp.Run ⋄ ⎕OFF'

接下来,使用)save /tmp/myapp将您的应用程序另存为工作区。

现在,您应该能够使用dyalog -hello=world /tmp/myapp等运行应用程序了。当然,为了便于使用,您可以将其放入shell脚本中。

您将分发给客户的至少是工作区和运行时解释器,但您可能也想打包一些配套文件/依赖项。然而,在从您的申请中赚钱之前,请查看Dyalog的价格和许可证。

我就是这样做的(不是Dyalog的官方建议(:

使用ride IDE开发程序(否则我如何访问密钥绑定?(。

RIDE很酷(我有偏见(,尤其是在刚开始时,当你想以交互方式探索语言时。

但在实践中,我更喜欢用这个插件用Vim编辑纯文本文件。它提供了带有可配置前缀密钥的密钥绑定。我认为还有一种方法可以将Vim或Emacs配置为RIDE的外部编辑器——这样你就可以拥有闪亮的会话界面和你熟悉的高效编辑器。

或者,对于密钥绑定,您可以执行以下操作:

setxkbmap -layout us,apl -option grp:win_switch

同时按下"Windows键"和另一个键可以在任何X11应用程序中插入APL字符,方便发送电子邮件、聊天等。

将我的程序保存到文件中。从命令行运行程序,

我把这个放在首位:

#!/bin/bash
(echo ∇M;tail -n+3 $0;echo -e '∇nMn⎕off')|dyalog -script;exit $?
⎕io←0⋄⎕ct←0⋄⎕pw←32767 ⍝ opinionated :)

并进行

chmod +x file.dyalog
./file.dyalog

带有命令行参数(如何获取命令行参数?(

这有点问题。有适用于Windows的2⎕NQ#'GetCommandLineArgs',但据我所知,没有适用于Linux的有效解决方案

请参阅下面的评论和Adám的回答。

分发我的程序,以便其他人可以使用它们。

任何你喜欢的方式-github,gitlab,bitbucket,你自己的网站,鸽子,等等

"APL会话">

这只是APL对"REPL"的传统术语。

最新更新