if-statement - ocaml boolean 定义一个包含元素的函数,如果是则返回 true,否则返回 false
问题描述
我不知道为什么这会给我一个错误。感谢您提供任何帮助!问题是:“定义一个函数包含获取一个元素和一个列表,如果元素在列表中则返回 true,否则返回 false。”
我的回答是:
let contains elt l =
if l = l
then true
else
false;;
当我测试它时,它是说一切都是真的。
更新:
我认为这更接近答案,但仍然无法正常工作。
let rec contains elt l =
if
elt = l
l = []
then true
else
false;;
解决方案
让我们将您的功能应用于5
,这是计算机将如何减少/评估您的代码:
contains elt 5 => if 5 = 5 then true else false
显然5
将永远等于5
。此外,变量将始终等于自身。
提示 1:您没有使用第一个参数
提示 2:第二个参数是一个元素列表,您应该在其中搜索第一个参数
提示 3:您需要使用递归并解构第二个参数,并将列表的每个元素与提供的elt
变量进行比较。
推荐阅读
- xpath - 从页面获取最相关的内容
- neo4j - Neo4j 桌面 - 应用程序显示为“未安装”
- java - 如何实现多个线程安全的读/写锁(ConcurrentHashmap)
- c++ - 在 ifs() C++ 中快速访问文件位置
- jquery - 使用 jquery .each 循环遍历 div 并检索 data-src
- angular - 为什么复选框事件状态返回字符串“on”而不是 true/false?
- maven - 如果以下配置在maven中重复
- python-3.x - 菜单栏被框架禁用
- ruby - || 和 && 不是 Object 上的方法——它们是什么?
- numpy - 我在哪里可以找到关于 NumPy 对其目录的描述的文档?