我想在mma中制作一个迷你编程语言.从文本文件到包中的模块.理想情况下,我应该能够通过另一个包中的函数从Mathematica中生成包和模块.
问题:这可能吗?我正在寻找一个参考或一个例子来启动它.
编辑:例如:
想象一下具有n个整数类型寄存器的存储体.
说明是:
1 Z(n)
2 C(m,n)
3 J(m,n,q)
4 S(n)
每行都有一个地址.第一行1,第二行2等.Z(n)在寄存器n中存储0.寄存器n中的寄存器m的C(m,n)存储值.J(m,n,q)如果值寄存器m等于寄存器n的值则跳转到地址q的行.S(n)将n加1到寄存器n中的值.
然后给出两个工作程序P和QI想要生成连接程序P + Q.
然后给出两个工作程序P和QI想要在P之后生成替换Q.
最后,我想开始尝试递归...这个'迷你项目'的目的.
所以,我最近从Mathematica转换为Matlab,虽然Matlab具有Mathematica的大部分有用功能,但我无法弄清楚如何执行相当于Mathematica的延迟设置操作':=',它将变量赋值给a懒散的时尚.
例如,在Mathematica中:
y = 2;
x:= y;
y = 3;
X
将x的值赋予3,而我在Matlab中获得相同行为的唯一方法是:
y = 2;
x = @()(y);
y = 3;
X()
虽然在技术上回答了我的问题,但它是一个非常特别的工作,需要将x作为一个函数来处理.
那么有更自然的方法来做到这一点是Matlab吗?
编辑:
我的ad-hoc解决方案仅在y是句柄类的字段时才起作用,为了清楚起见,我把它留在了代码之外(它应该是someclass.y).我的问题的答案最好不会有这个限制,但如果确实如此,我仍然会接受.
matlab wolfram-mathematica lazy-evaluation delayed-execution