如何解决如何在 OCaml 中组合函数的布尔输出和单位输出?
如果我通过一个例子来解释我的意思会更容易。
那么我们如何编写一个接受整数作为参数的函数,如果该数字大于 0,则返回 x <- c("(1,21)","(33,99)","(1,7)")
library(tidyverse)
map_dfr(str_split(str_replace(x,'\\((\\d+)\\,\\s(\\d+)\\)','\\1 \\2'),' '),~ set_names(.x,c('A','B')))
#> # A tibble: 3 x 2
#> A B
#> <chr> <chr>
#> 1 1 21
#> 2 33 99
#> 3 1 7
并打印 true
,否则仅返回 Good!
?
解决方法
有两种方法。第一个是通过提供验证答案的函数并使用函数“外部”条件来分离问题。例如:
let is_valid n = n > 0
(* And after *)
if is_valid 10
then
print_endline "Good"
否则有可能在返回值前显示结果,例如:
let is_valid n =
let result = n > 0 in
let () =
if result
then print_endline "Good!"
in result
在第二个示例中,无论如何都会返回最终结果(布尔值),但如果结果为“true”,则该函数将显示“Good!”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。