在Clojure中具有错误处理的管道

mik*_*era 6 validation message pipeline clojure

我正在寻找一种在Clojure中创建可组合验证和转换管道的智能方法.目的是能够使用可组合的步骤对消息进行简单的翻译和验证.

主要要求:

  • 可以在功能上组合,即管道是纯函数
  • 可以应用于常规Clojure数据类型(地图,向量,列表及其嵌套组合)
  • 可以执行转换,例如在地图中重命名密钥
  • 可以执行任意验证(例如,将模式验证应用于部分消息)
  • 检测到错误时可以优雅地拯救,并返回有意义的错误消息(只是抛出异常!)

我想我可以写下这一切,但今天不要特别想重新发明轮子:-)

任何人都知道一个可以做到这一点的工具,或者对如何以聪明和一般的方式构建一个工具有一个好主意?

Ale*_*ler 1

您可以查看 Zach Tellman 的Lamina图书馆。您可以使用错误处理程序创建函数管道作为其他有用的功能。