标签: oz

关于Mozart/Oz编程语言的看法?

我意识到Oz是一种相当模糊的语言.我第一次在编程语言大战中听说过它.然后我发现了这篇维基百科的文章,该文章指出Mozart/Oz支持8种不同的范例.

所以我试一试.有很多文档,除了我发现它非常混乱和缺乏.我找不到任何书籍或其他文档,也没有几个例子.此外,它似乎与Emacs紧密集成,我不是很习惯.

您对这种编程语言有何看法:是否完全浪费时间?或者有人能指出我一些好的资源等?

另外,我不想使用Emacs.我还有其他选项,如交互式解释器或正常的编译循环吗?

mozart oz

53
推荐指数
4
解决办法
1万
查看次数

实现神经网络的最佳编程语言是什么?

我不是在寻找神经网络库,因为我正在创建新的网络.为此我需要一个好的"数据流"语言.

当然,你可以用C,C++,Java和co做到这一点.但是从头开始处理多线程等将是一场噩梦.

在另一个极端,像Oz或Erlang这样的语言看起来更适应,但它们没有很多库,而且它们更难掌握(它们很容易使用它们,但创建完整的软件是否可以?).

你会建议什么?

erlang dataflow oz neural-network

18
推荐指数
3
解决办法
6682
查看次数

动态类型和编程分布式系统

来自Scala(和Akka),我最近开始研究其他用分布式计算设计的语言,即Erlang(以及一点点的Oz和Bloom).Erlang和Oz都是动态类型的,如果我没记错(将尝试查找链接),人们已经尝试向Erlang添加类型并设法键入其中的一部分,但无法成功强制系统使其适合最后一点?

Oz,虽然是一种研究语言,对我来说当然很有趣,但它也是动态类型的.

Bloom目前的实现是在Ruby中,因此是动态类型的.

据我所知,Scala(我认为Haskell虽然我认为最初是作为对纯懒惰函数语言而不是分布式系统的探索而构建的)是唯一静态类型并提供语言级抽象的语言(因为缺乏在分布式计算中更好的术语.

我只是想知道动态类型与静态类型相比是否有固有的优势,特别是在为分布式系统编程提供语言级抽象的上下文中.

erlang scala distributed-computing oz

14
推荐指数
2
解决办法
1264
查看次数

Oz中的尾递归优化

关于Oz教程中的函数章节中,它说:

类似于惰性函数语言Oz允许某些形式的尾递归优化,这些优化在某些严格的函数语言中找不到,包括标准ML,Scheme和并发函数语言Erlang.但是,Oz中的标准函数定义并不是懒惰的.

然后继续显示以下在Oz中尾递归的函数:

fun {Map Xs F}
   case Xs
   of nil then nil
   [] X|Xr then {F X}|{Map Xr F}
   end 
end 
Run Code Online (Sandbox Code Playgroud)

这样做,它将空列表映射到空列表和非空列表,将结果应用于F其头部,然后将其前置于调用Map尾部的结果.在其他语言中,这不是尾递归,因为最后一个操作是prepend,而不是递归调用Map.

所以我的问题是:如果"Oz中的标准函数定义不是懒惰的",那么Oz做什么,像Scheme或Erlang这样的语言不能(或不会?)能够对此函数执行尾递归优化?究竟什么时候函数尾部递归在Oz?

recursion functional-programming oz

7
推荐指数
1
解决办法
1688
查看次数

使用Mozart Oz中的相同代码,函数和过程的行为会有所不同吗?

我尝试使用2种方法在Oz中打印出Fibonacci序列:使用Emac作为编辑器的函数和过程.程序在这里:

declare 
fun {Fibo N} 
   case N of 
      1 then 1 
   [] 2 then 1
[] M then {Fibo (M-1)} + {Fibo (M-2)} 
   end 
end 
declare
proc {Loop K}
   if K ==1 then  {Browse K}
   else
      {Loop K-1}
       {Browse {Fibo K}}
   end
end
{Loop 10}
Run Code Online (Sandbox Code Playgroud)

和功能:

declare 
fun {Fibo N} 
   case N of 
      1 then 1 
   [] 2 then 1
[] M then {Fibo (M-1)} + {Fibo (M-2)} 
   end 
end
declare
fun {Loo L}
   if L ==1 then  {Browse L} …
Run Code Online (Sandbox Code Playgroud)

procedure function mozart oz

7
推荐指数
1
解决办法
3449
查看次数

如何在Oz中创建列表?

我正在尝试使用以下代码在Oz中创建一个列表:

local Loop10 Xs in
   proc {Loop10 I}
      Xs={List.append Xs I}
      if I == 10 then skip
      else
     {Browse I}
     {Loop10 I+1}
      end
      {Browse Xs}
   end
{Loop10 0}
end
Run Code Online (Sandbox Code Playgroud)

莫扎特编译器显示的代码被接受,但没有浏览窗口打开.我要做的就是在Oz中创建一个列表.

代码有什么问题?

mozart oz

6
推荐指数
2
解决办法
4137
查看次数

在命令行中执行Mozart-Oz代码

我正在尝试使用莫扎特奥兹.我从source forge下载执行二进制文件:http://sourceforge.net/projects/mozart-oz/.

在启动Mozart.app时,emacs(适用于Mac OS X的aquamacs)开始在其中进行编码.

例如,我可以输入{Browse 'Hello World'}并执行Oz -> Feed Buffer以在Tcl/Tk浏览器中获取结果.

然后,我如何在命令行中构建或执行Oz代码,就像我使用Python或Ruby一样?

我在bin目录中找到了二进制文件.

/Applications/Mozart2.app/Contents/Resources/bin
    ??? oz
    ??? ozc
    ??? ozemulator
    ??? ozengine
    ??? ozwish
Run Code Online (Sandbox Code Playgroud)

但是,当我执行代码时ozc -c hello.oz,我收到了%** variable Browse not introduced错误.可能有什么问题?

mozart oz

4
推荐指数
1
解决办法
1555
查看次数

有没有新版本的mozart/oz?

想知道是否有新版本的莫扎特/盎司目前是1.4.那是在2008年.必须取得进展.

mozart oz

1
推荐指数
1
解决办法
435
查看次数