我们正在考虑从 PCRE 迁移到 PCRE2 作为我们的内部正则表达式引擎。只有正则表达式语法本身暴露给我们的用户,因此库 API 差异对我们的使用来说不是问题。但是,我们必须记录任何行为变化。
很多网站都讨论了 API 差异,但我没有发现任何列出正则表达式符号中实际差异的网站。虽然我确实知道这与 PCRE 中的[\w-_]含义相同但在 PCRE2 中无效,但我怀疑还存在其他差异。[\w\-_]
PCRE2 的正则表达式与 PCRE 的正则表达式有何不同?
我编程APL,并一直在考虑从SourceTree切换到GitKraken.但是,我无法更改差异视图字体.由于字体对于APL非常重要,这是我的举动.
有没有办法在GitKraken中更改字体(和大小)?
这两个官方的hacky答案都是受欢迎的.
SourceTree,使用APL385 Unicode字体,大小为16:

为了比较,这里是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) \n我目前正在为一个类开发 APL 程序,并且遇到了错误处理问题。
\n\n在我制作的函数中,我想检查输入是否是整数。如果不是,我想返回错误消息并且不运行函数的其余部分。到目前为止,我比较它是否等于它本身的下限。如果没有,我不希望该函数运行并希望它停止。如果我输入并给出错误消息,它会起作用,但如果我输入类似or 的内容并仅给出正常错误,则它4.2不起作用。我尝试制作一个 try catch 语句,但是当它进入我的函数时它给了我一个错误。\'A\'\'ABCDEF\':Try
这不是我想要的。如果输入是字符或字符串,如何使函数以错误消息结束而不是继续?我知道我可以将整个代码放在 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\'\nRun Code Online (Sandbox Code Playgroud)\n\n作为屏幕截图:
\n\n
我正在阅读 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)
但我不明白为什么。
我一直在尝试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受到一些 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
在论文“数组语言中的组合逻辑和组合器”中,他们给出了 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\nRun Code Online (Sandbox Code Playgroud)\n为了清楚起见,他们还指出:
\n\n\n对于那些不读 APL 的人来说,可以翻译最终的最大连续数 APL 解决方案:\n
\nreduce(max, map(length, W(partition, vec)))
那么,如何用 J 表达以下内容呢?
\n \xe2\x8c\x88/\xe2\x89\xa2\xc2\xa8\xe2\x8a\x86\xe2\x8d\xa8vec\nRun Code Online (Sandbox Code Playgroud)\n该\xe2\x8a\x86符号似乎是一个“分区”运算符。目前尚不清楚 J 中是否存在这种情况,但我可能只是错过了它。很好奇上面的表达式在“J”中会是什么。
我试图解决使用APL的一个问题,对此我有两个向量v1和v2,用相对长度最多+1,取决于输入.这意味着((?v1)-(?v2))?¯1 0 1.
什么是交错表示向量的最好办法,所以要创建第三个向量v3这样v3=v1[0],v2[0],v1[1],v2[1],...?
(如果相关,我使用的是Dyalog APL 16.0版)
还有一个问题来学习如何使用 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
APL 中函数向量(数组)的语法是什么?
我尝试过以下操作,但它们分别被解释为 3 列和 2 列:
{1},{2}
Run Code Online (Sandbox Code Playgroud)
{1} {2}
Run Code Online (Sandbox Code Playgroud)
附言。顺便说一句,我希望用更复杂(并且可能命名)的函数来做到这一点,上面的{1}例子很简短。