加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

是否可以在Perl 6中实现lisp“语言”?

发布时间:2020-12-15 21:51:49 所属栏目:大数据 来源:网络整理
导读:在这里,每个引用符号的Hello $world的解释我的意思是语言. $world = "WΩrlδ""(Hell)*o $worldn" # --- plain (Hell)*o,resolve $world,escape n'(Hell)*o $worldn' # --- plain (Hell)*o,plain $world,escape n/(Hell)*o $worldn/ # --- regexp (Hell
在这里,每个引用符号的Hello $world的解释我的意思是语言.
$world = "WΩrlδ"
"(Hell)*o $worldn"           # <--- plain (Hell)*o,resolve $world,escape n
'(Hell)*o $worldn'           # <--- plain (Hell)*o,plain $world,escape n
/(Hell)*o $worldn/           # <--- regexp (Hell)*,interpret n
<(Hell)*o $worldn>           # <--- make list ["(Hello*o","$worldn"]
{(Hell)*o $worldn}           # <--- 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 " tf"))


$ typeof($emacs_func)
> Emacs Lisp list

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

解决方法

Perl 6的语法只是一个用Perl 6编写的语法,而且非常具有可塑性(尽管当前的实现并不能完全提供所有指定的灵活性).

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

将Lisp语法限制为一些特殊定界的句法结构(如lisp(…)或q:lisp {…})可能更有意义,尽管可能会实现一些混合.

我敢肯定,一旦编译器中有这样的功能,我们就会看到很多有趣的实验,只有那些实验才会显示哪种语言混合既可行又有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读