【发布时间】:2014-02-04 07:22:56
【问题描述】:
新手 Clojure 问题提醒...
我有一个 Clojure 向量,看起来像这样:
(def sample-data
[{:date "2014-01-01" :value 5}
{:date "2014-01-02" :value 7}
{:date "2014-01-03" :value 6}
{:date "2014-01-04" :value 7}
{:date "2014-01-07" :value 11}])
实际上它比这要大得多,但你明白了一般的想法...... - 它是一个单一值的向量,每天收集一次。向量将按 :date 顺序排序,但奇数缺失样本存在间隙。
我想创建一个函数,该函数在“样本数据”中获取一个 :date,并告诉我该日期的 :value 是否大于前一个日期的 :value。角落案例:
- 如果在前一个日期没有样本,那么我想回到收集样本的最后日期并与那个 :value 进行比较
- 如果指定日期没有 :value,那么我很乐意提出错误并在其他地方处理
- 如果两个:values相等,我想返回false(因为它没有增加)
我想调用函数,例如
(value-increased? sample-data {:date '2014-01-03'})
并得到一个布尔响应。在这种情况下,它会是错误的,因为 2014-01-03 (6) 的值小于前一天 (7) 的值
提前致谢
【问题讨论】: