如何在OCaml的函数中将字符串变量作为参数传递?

问题描述

我为一个函数编写了一个简单的代码,该函数接受一个字符串并返回其长度:

let fun x = String.length x;;

但是它显示语法错误。为什么? 如果我只写String.length x;;很好,但是我的函数声明有什么问题呢?

如何将字符串变量作为参数传递给OCaml中的函数

解决方法

fun是OCaml中的保留关键字。您可以选择不是关键字的其他名称,该功能将起作用。以下是OCaml中保留关键字的列表:https://caml.inria.fr/pub/docs/manual-ocaml/manual071.html

,

您在这里混合使用不同的语法:

  1. * =
  2. 趣味 *->

“ let”后必须跟要创建的函数的名称,“ fun”作为保留关键字,不是该函数的有效名称。这是一个关键字,而不是一个标识符,因此语法分析器会给您一个错误。