最大值中是否有空值?

时间:2017-10-31 08:41:45

标签: maxima

我有以下两个功能:

find(list, closure) := block(
  filter: sublist(list, closure),
  if length(filter) > 0 then filter[1] else null)$

find_index(list, closure) := block(
  filter: sublist_indices(list, closure),
  if length(filter) > 0 then filter[1] else null)$

在其他语言中,如果找不到搜索的元素,我会在这里返回nullnil。但我认为这个关键字在maxima中并不存在。在这种情况下,最大值的常见约定是什么?也许false

2 个答案:

答案 0 :(得分:2)

false确实是最常用的代表值"而不是"。它不是必需的,但它有一个非常一致的约定。

请注意,如果if foo then bar评估为falsefoo评估为false。因此,if foo then bar else false相当于if foo then bar,这有点短。

答案 1 :(得分:1)

从手册:

  

- 常数:false

 'false' represents the Boolean constant of the same name.  Maxima
 implements 'false' by the value 'NIL' in Lisp.

因此,空结果的等效值为false