从我在博客上看到和阅读的内容来看,PyPy是一个非常雄心勃勃的项目.它将为其兄弟姐妹(CPython,Jython和IronPython)带来哪些优势?它是速度,跨平台兼容性(包括移动平台),在没有GIL的情况下使用c扩展的能力,还是更多关于可以做什么的技术练习?
我正在尝试根据我在Haskell中编写的程序将一些指称语义编码到Agda中.
data Value = FunVal (Value -> Value)
| PriVal Int
| ConVal Id [Value]
| Error String
Run Code Online (Sandbox Code Playgroud)
在阿格达,直接翻译将是;
data Value : Set where
FunVal : (Value -> Value) -> Value
PriVal : ? -> Value
ConVal : String -> List Value -> Value
Error : String -> Value
Run Code Online (Sandbox Code Playgroud)
但是我得到了与FunVal有关的错误,因为;
值并非严格为正,因为它出现在Value定义中构造函数FunVal类型中箭头的左侧.
这是什么意思?我可以用Agda编码吗?我是以错误的方式去做的吗?
谢谢.
根据定义,homoiconic这个词的意思是:
代码和数据的相同表示
在LISP中,这意味着您可以使用引用列表并对其进行评估,因此(car list)函数和(cdr list)参数也是如此.这可以在编译时或在运行时发生,但是它需要解释器.
没有编译时解释器的编译语言是否也可能是homoiconic?或者说同性恋的概念仅限于口译员?
我刚下载了GNU emacs23.4,我已经在Windows7中安装了python3.2.
我一直在使用Python IDLE来编辑python文件.
问题是我可以用Emacs编辑python文件,但我不知道如何在Emacs中运行python解释器.当我点击"切换到解释器",然后它说"搜索程序:没有这样的文件或目录,python"
有人说我需要对.emacs文件进行一些更改,但我不知道在哪里寻找.
我非常缺乏经验,刚开始学习编程.我不熟悉常用的术语.我一直在寻找解决方案,但我在互联网上发现的大多数文章只会让我感到困惑.
所以问题是:
如果我有一个希望在Python中求值的表达式,例如r下面的代码片段中的表达式,那么Python解释器会很聪明并且可以重用子结果x+y+z,还是只求它两次?我也想知道这个问题的答案是否与编译语言(例如C)相同。
x = 1
y = 2
z = 3
r = (x+y+z+1) + (x+y+z+2)
Run Code Online (Sandbox Code Playgroud)
有人提出这个问题与这个问题相似。我相信这是相似的。但是,我认为链接的问题不是“最小示例”。同样在链接的问题中,操作顺序没有歧义,例如,在与此问题类似的示例中,没有定义的操作顺序(在数学上),具体取决于各个函数调用的顺序(即模棱两可),可能会做得更好或更糟的优化工作。考虑(a b b a)(a b b a)(b a a * b),存在嵌套的重复子字符串,并且根据预处理的顺序和数量,可以执行许多不同的优化。
我不知道为什么历史不能在Python 2.7.2解释器中工作.我为每个箭头键获得了奇怪的字符组.在终端中不会发生这种情况.顺便说一下,我在Ubuntu 10.04上.这是这个地狱的屏幕截图:

如何通过按向上和向下箭头键恢复获取命令历史记录的功能?
是否有可以在Android上安装的Haskell解释器(带有标准库)?
因此,拥有Android设备的人可以在Android设备上进行一些Haskell练习:在Haskell中编写并运行一些示例代码.
有没有办法在JVM上运行普通的c代码?
不通过JNI连接,运行,就像你可以通过JRuby运行ruby代码,或通过Rhino运行javascript.
如果没有当前的解决方案,您会建议我应该做什么?
显然,我想尽可能多地使用部分解决方案来实现它.
ANTLR似乎是一个很好的起点,拥有完整的"ANSI C"语法实现......
我应该使用ANTLR生成的代码在JVM上构建一个"玩具"VM吗?
是否可以包含运行Scala解释器的jar文件?
当我从scalac编译时,我的代码正在工作:
scalac script.scala -classpath *.jar
Run Code Online (Sandbox Code Playgroud)
但我希望能够在运行解释器时包含一个jar文件.