如何在Ocaml中正确使用分隔符
考虑OCamel中的以下代码:如何在Ocaml中正确使用分隔符,ocaml,Ocaml,考虑OCamel中的以下代码: let rodrigue="The cid" ; let diegue="cid's father" 这会在tryOcaml上产生语法错误。怎么了?当我取下这个盒子时,它似乎起了作用;请帮忙 而且, rodrigue。[4]有两个地方可以在OCaml中使用let。在模块的顶层,您可以拥有以下功能: let pattern = expression 模块本质上是命名值的集合,这种形式的let是定义名称及其值的方式 另一方面,有一个OCaml表达式如下所示: le
let rodrigue="The cid" ; let diegue="cid's father"
这会在tryOcaml上产生语法错误。怎么了?当我取下这个盒子时,它似乎起了作用;请帮忙
而且,
rodrigue。[4]有两个地方可以在OCaml中使用
let
。在模块的顶层,您可以拥有以下功能:
let pattern = expression
模块本质上是命名值的集合,这种形式的let
是定义名称及其值的方式
另一方面,有一个OCaml表达式如下所示:
let pattern = expression1 in expression2
本质上,这是定义用于expression2
的局部变量的一种方法
您的代码与代码>与这两种表单都不起作用。A代码>用于将两个表达式组合成一个表达式。但是let pattern=value
不是一个表达式。它的形式是模块的顶级声明
删除时它工作的原因代码>是指您有两个顶级声明。只要代码出现在模块的顶层,这就可以工作。在这种情况下,它将名称rodrigue
和diegue
定义为模块的命名值
其他答复:
在OCaml的最新版本中,字符串是不可变的。如果需要可变性,则需要使用字节
类型。作为此更改的一部分,字符串。[…]可能需要读取,也可能需要。你需要自己做一些研究,比如阅读文档和基础教程,并进行搜索以检查是否有人问过这个问题。每个帖子你也应该只问一个问题。我这里数到八。
# let mystring = "abc";;
val mystring : string = "abc"
# let mybytes = Bytes.of_string "abc";;
val mybytes : bytes = Bytes.of_string "abc"
# mystring.[0] <- 'b';;
Warning 3: deprecated: String.set
Use Bytes.set instead.
Error: This expression has type string but an expression was
expected of type bytes
# Bytes.set mybytes 0 'b';;
- : unit = ()
# mybytes;;
- : bytes = Bytes.of_string "bbc"
# for x = 1 to 1 do () done = ();;
- : bool = true