我需要帮助才能在prolog中解决这个问题,
当我写这篇文章时,在polog中写道:使用签名secondMin定义谓词secondMin / 2(List, Min2)其中Min2是某些中第二低的唯一值元素 列表,列表。如果列表中包含的元素少于两个, 那么你的谓词应该显示以下内容,“错误:列表有 少于两个唯一元素。“如果List的另外一个元素不是 数字,那么你的谓词应该为第一个显示以下内容 遇到一个非数字元素,“ERROR:”元素“不是一个 number。“,其中element是非数字元素的值。
secondMin([512], M2).
我必须收到这个:
ERROR: List has fewer than two unique elements.
但在我的代码中收到此
Unknown message: 'List has fewer than two unique elements'
必须是错误而不是未知消息
这就是我所拥有的
%4) Second Minimum
secondMin(L, M) :-
( ground(L)
-> ( is_list(L),
maplist(number, L)
-> ( sort(L, [_,Second|_])
-> M = Second
; throw('List has fewer than two unique elements')
)
; throw('"b" is not a number')
)
; throw(error(instantiation_error, _))
).