Functional programming 如何在OCaml中输入2个数字并输出它们的总和

Functional programming 如何在OCaml中输入2个数字并输出它们的总和,functional-programming,ocaml,Functional Programming,Ocaml,我正在学习OCaml编程,但在这方面遇到了问题,这里有一种方法可以做到这一点,在OCaml顶层(read-eval-print循环)中演示: 我输入了18和44,然后顶层打印了62。然后,它打印出print\u int的结果(单位类型为()) (对你来说,在这里提问之前先学习一些教程可能会更有效。网站上有很好的教程。) 更新 正如评论者所指出的,你的问题的完整答案有很多微妙之处。特别是,您不希望在单个表达式中出现多个read\u int(),因为表达式求值顺序未指定。在我的辩护中,这就是(至少部

我正在学习OCaml编程,但在这方面遇到了问题,这里有一种方法可以做到这一点,在OCaml顶层(read-eval-print循环)中演示:

我输入了18和44,然后顶层打印了62。然后,它打印出
print\u int
的结果(单位类型为())

(对你来说,在这里提问之前先学习一些教程可能会更有效。网站上有很好的教程。)

更新


正如评论者所指出的,你的问题的完整答案有很多微妙之处。特别是,您不希望在单个表达式中出现多个
read\u int()
,因为表达式求值顺序未指定。在我的辩护中,这就是(至少部分)为什么我建议从一个教程开始,在这里提问之前提高速度。

这里有一种方法可以做到这一点,在OCaml顶级(读取-评估打印循环)中演示:

我输入了18和44,然后顶层打印了62。然后,它打印出
print\u int
的结果(单位类型为())

(对你来说,在这里提问之前先学习一些教程可能会更有效。网站上有很好的教程。)

更新

正如评论者所指出的,你的问题的完整答案有很多微妙之处。特别是,您不希望在单个表达式中出现多个
read\u int()
,因为表达式求值顺序未指定。在我的辩护中,这就是(至少部分)为什么我建议从一个教程开始,在这里提问之前提高速度。

let()=let a=read_int()在let b=read_int()在Printf.Printf“%d和%d的总和是%d\n”ab(a+b)注意
print_int(100*read_int()+read_int())使用相同的输入可能会得到4418而不是1844。let()=let a=read_int()在let b=read_int()在Printf.Printf“%d和%d之和是%d\n”ab(a+b)注意
print_int(100*read_int()+read_int())使用相同的输入可能会得到4418而不是1844。
# print_int (read_int () + read_int ());;
18
44
62- : unit = ()