gpt4 book ai didi

perl - 是否可以在 Perl 6 中实现 lisp "language"?

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:19 24 4
gpt4 key购买 nike

在这里,每个引号对 Hello $world 的解释是指语言

 $world = "WΩrlδ"
"(Hell)*o $world\n" # <--- plain (Hell)*o, resolve $world, escape \n
'(Hell)*o $world\n' # <--- plain (Hell)*o, plain $world, escape \n
/(Hell)*o $world\n/ # <--- regexp (Hell)*, resolve $world, interpret \n
<(Hell)*o $world\n> # <--- make list ["(Hello*o", "$world\n"]
{(Hell)*o $world\n} # <--- syntax error, this language cant' parse it

那么 Perl 6 是否足够强大,能够在未来的语言中存在,例如

my $emacs_func = (defun perl-backward-to-start-of-continued-exp (lim)
(if (= (preceding-char) ?\))
(forward-sexp -1))
(beginning-of-line)
(if (<= (point) lim)
(goto-char (1+ lim)))
(skip-chars-forward " \t\f"))


$ typeof($emacs_func)
> Emacs Lisp list

因此,问题显然是:可以在 Perl 6 的当前规范(甚至实现)中完成吗?

最佳答案

Perl 6 的语法只是用 Perl 6 编写的语法,并且具有很强的可塑性(尽管当前的实现并不能完全提供所有指定的灵 active )。

所以你问的原则上是可行的,但可能需要多加注意。特别是圆括号完全有效的 Perl 6 语法,甚至 (defun a b) 解析为有效的 Perl 6。所以你需要/真的/小心消歧规则,这将是一个巨大的蠕虫。

将 Lisp 语法限制为某些特殊分隔的语法结构(如 lisp(...)q:lisp{...})可能更有意义,尽管可能可以实现一定程度的混合。

我敢肯定,一旦编译器提供了此类功能,我们就会看到大量有趣的实验,只有这些实验才能表明哪种语言混合既可行又有用。

关于perl - 是否可以在 Perl 6 中实现 lisp "language"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8056404/

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