小编Adá*_*dám的帖子

PCRE 和 PCRE2 之间的正则表达式差异

我们正在考虑从 PCRE 迁移到 PCRE2 作为我们的内部正则表达式引擎。只有正则表达式语法本身暴露给我们的用户,因此库 API 差异对我们的使用来说不是问题。但是,我们必须记录任何行为变化。

很多网站都讨论了 API 差异,但我没有发现任何列出正则表达式符号中实际差异的网站。虽然我确实知道这与 PCRE 中的[\w-_]含义相同但在 PCRE2 中无效,但我怀疑还存在其他差异。[\w\-_]

PCRE2 的正则表达式与 PCRE 的正则表达式有何不同?

regex migration pcre

15
推荐指数
1
解决办法
3887
查看次数

在GitKraken中更改diff字体

我编程APL,并一直在考虑从SourceTree切换到GitKraken.但是,我无法更改差异视图字体.由于字体对于APL非常重要,这是我的举动.

有没有办法在GitKraken中更改字体(和大小)?

这两个官方的hacky答案都是受欢迎的.

SourceTree,使用APL385 Unicode字体,大小为16:
SourceTree截图

GitKraken,使用默认字体:
GitKraken截图

为了比较,这里是Stack Overflow的渲染:

c??chunk
(c1 c2)?{?{(1,1?<\?)??}'::'??}c
c2?#.Strings.deb 2?c2
c2?c2{0???:? ? 0???:?? ? (??),?}1?chunk
c2?¯2??c2,¨??UCS 13 10
r??c1 c2
Run Code Online (Sandbox Code Playgroud)

settings diff fonts apl gitkraken

8
推荐指数
2
解决办法
1926
查看次数

APL 中的错误处理

\n我目前正在为一个类开发 APL 程序,并且遇到了错误处理问题。

\n\n

在我制作的函数中,我想检查输入是否是整数。如果不是,我想返回错误消息并且不运行函数的其余部分。到目前为止,我比较它是否等于它本身的下限。如果没有,我不希望该函数运行并希望它停止。如果我输入并给出错误消息,它会起作用,但如果我输入类似or 的内容并仅给出正常错误,则它4.2不起作用。我尝试制作一个 try catch 语句,但是当它进入我的函数时它给了我一个错误。\'A\'\'ABCDEF\':Try

\n\n

这不是我想要的。如果输入是字符或字符串,如何使函数以错误消息结束而不是继续?我知道我可以将整个代码放在 if 块中,但这似乎确实没有必要。

\n\n

我的纯文本代码:

\n\n
 TESTER Q;error\n :If Q\xe2\x89\xa2\xe2\x8c\x8aQ\n     \'Possible\'\n :Else\n     \'Not Possible\'\n :EndIf\n \'Again, Possible\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

作为屏幕截图:

\n\n

截屏

\n

error-handling apl dyalog

6
推荐指数
1
解决办法
487
查看次数

`{??}` 和 `?` 有什么不同?

我正在阅读 Hui 和 Kromberg 最近的“自 1978 年以来的 APL”,在?(模板)的讨论中,他们给出了以下示例:

      {??}?5?'abcde'
   abc   abcd  abcde  bcde   cde
Run Code Online (Sandbox Code Playgroud)

为什么{??}需要的只是??我对 APL 还是很陌生,但我天真地认为,一般来说{f?}应该等同于fmonadically 调用。

根据经验,我可以看到情况并非如此:

      ??5?'abcde'
DOMAIN ERROR
      ??5?'abcde'
      ?
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么。

arguments variadic-functions apl dyalog

6
推荐指数
1
解决办法
122
查看次数

不需要:APL 键盘覆盖已启用?

我一直在尝试APL。我运行的是 Windows 10,并且已安装 Dyalog 18.0 以及 VS Code 的 APL 语言和 APL 反引号符号扩展。

\n

但即使我没有运行任何这些程序,有时我的键盘会突然被劫持!我的所有 ctrl 命令都被 APL 符号替换。\n例如 ctrl-Z(撤消)变为 \xe2\x8a\x82,ctrl-A(全选)变为 \xe2\x8d\xba。我不知道为什么以及如何再次禁用它。这让我的工作变得非常困难!

\n

我一直在谷歌搜索这个问题,但到目前为止还没有找到答案。我查看了 Windows 键盘设置,但看起来很正常。区域设置也正确。\n我现在只是卸载所有内容,但这样我每次想尝试 APL 时都需要重新安装。

\n

有人可以告诉我发生了什么事以及如何解决它吗?(并告诉我该向谁抱怨这是一个非常敌对的功能)

\n

keyboard key-bindings apl dyalog vscode-extensions

6
推荐指数
2
解决办法
593
查看次数

默认写{(+/3&lt;???6)×100÷?}1000

受到一些 Conor Hoekstra YouTube 视频的启发,我尝试在 APL 中做一些小步骤,并将我的小线条转换为无点样式。但对于这个(1000 个骰子 6 卷中 4、5 或 6 卷的百分比)我无法理解如何在重塑之前消除 omega。

\n

{(+/3<?\xe2\x8d\xb5\xe2\x8d\xb46)\xc3\x97100\xc3\xb7\xe2\x8d\xb5}1000

\n

apl pointfree tacit-programming

6
推荐指数
1
解决办法
195
查看次数

“最大连续数”问题的“j”表达式是什么?

在论文“数组语言中的组合逻辑和组合器”中,他们给出了 APL 中的解决方案:

\n
      vec \xe2\x86\x90 1 1 0 1 1 1 0 0 0 1\n      \xe2\x8d\x9d split (partition) on zeroes\n      \xe2\x8a\x86\xe2\x8d\xa8vec\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x821 1\xe2\x94\x821 1 1\xe2\x94\x821\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x98\n      \xe2\x8d\x9d size of each sublist\n      \xe2\x89\xa2 \xcc\x88\xe2\x8a\x86\xe2\x8d\xa8vec\n2 3 1\n      \xe2\x8d\x9d max reduction\n      \xe2\x8c\x88/\xe2\x89\xa2\xc2\xa8\xe2\x8a\x86\xe2\x8d\xa8vec\n3\n
Run Code Online (Sandbox Code Playgroud)\n

为了清楚起见,他们还指出:

\n
\n

对于那些不读 APL 的人来说,可以翻译最终的最大连续数 APL 解决方案:\nreduce(max, map(length, W(partition, vec)))

\n
\n

那么,如何用 J 表达以下内容呢?

\n
 \xe2\x8c\x88/\xe2\x89\xa2\xc2\xa8\xe2\x8a\x86\xe2\x8d\xa8vec\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x8a\x86符号似乎是一个“分区”运算符。目前尚不清楚 J 中是否存在这种情况,但我可能只是错过了它。很好奇上面的表达式在“J”中会是什么。

\n

j apl

6
推荐指数
1
解决办法
207
查看次数

如何在APL中交织两个给定的向量

我试图解决使用APL的一个问题,对此我有两个向量v1v2,用相对长度最多+1,取决于输入.这意味着((?v1)-(?v2))?¯1 0 1.

什么是交错表示向量的最好办法,所以要创建第三个向量v3这样v3=v1[0],v2[0],v1[1],v2[1],...

(如果相关,我使用的是Dyalog APL 16.0版)

vector apl dyalog interleave

5
推荐指数
4
解决办法
257
查看次数

如何在APL语言中找到满足两个条件的矩阵的第一行的索引?

还有一个问题来学习如何使用 APL 语言。假设您有一个数组,例如:

c1 c2 c3 c4 c5 C6
3 123 0 4 5 6
3 134 0 2 3 4
3 231 180 1 2 5
4 121 0 3 2 4
4 124 120 4 6 3
4 222 222 5 3 5

那么,如何找出第 1 列中哪一行的值为 4,第 3 列中的值大于 0?

预期的答案是第 5 行,仅在 5

lookup querying matrix apl indices

5
推荐指数
1
解决办法
78
查看次数

APL 中的函数向量

APL 中函数向量(数组)的语法是什么?

我尝试过以下操作,但它们分别被解释为 3 列和 2 列:

{1},{2}
Run Code Online (Sandbox Code Playgroud)
{1} {2}
Run Code Online (Sandbox Code Playgroud)

附言。顺便说一句,我希望用更复杂(并且可能命名)的函数来做到这一点,上面的{1}例子很简短

arrays functional-programming function apl dyalog

5
推荐指数
2
解决办法
371
查看次数