我想学习一点OCaml,只是为了尝试除C++和Java之外的编程语言.如果你帮助我使用以下程序,我将非常感激:基本上用户输入一个正整数.打印从N到0的所有整数的总和.
显然你创建了一个整数N
,让用户输入它的值.创建一个sum
类型的变量int
.有一个for
循环,这将增加N
对sum
再递减N
由一个人的价值.循环将在N
大于1的情况下运行.我不知道如何在OCaml的语法中执行此操作.
任何帮助将受到高度赞赏.
您描述算法的方式是通常如何在C++或Java中实现它.你可以在OCaml中以相同的方式编写它,但惯用的方法是一个不会改变变量的递归函数,如下所示:
let rec print_sum acc n =
if n <= 0
then Printf.printf "Sum: %d\n" acc
else print_sum (acc + n) (n - 1)
Run Code Online (Sandbox Code Playgroud)
调用: print_sum 0 11 ;;
编写递归函数:
n <= 0
)n-1
.