adatx 通过给定输入自动生成函数的Clojure库
adatx 是一个用于自动设计算法的 Clojure 库,通过给定的输入 x 和期望的输出 y,找到一个函数使得 (fn [x] ?) => y
。该库通过 X 在所有程序空间中进行蛮力搜索来实现函数推导。使用该库非常简单,可以通过以下步骤进行集成:
-
在
lein
项目中添加依赖项[adatx \"0.1.0-SNAPSHOT\"]
。 -
在你的代码中引入命名空间
(ns your-ns (:require [adatx.prob-solve :as adatx]))
。
下面是一个使用 adatx/prob-solve
的示例,它定义了一个带有 2 个输入参数的函数推导过程:
(def workings (adatx/prob-solve
{ :symvec ['+ '- 'x1 'x2]
:prog-holder '(fn [x1 x2] :adatx.prog-hold/prog)
:in-out-pairs [{:in [1 2] :out 4} {:in [1 3] :out 5}] }))
在这个例子中,symvec 定义了可用的符号集,程序会尝试找到符合输入和输出条件的函数。这个方法对于自动生成函数非常有用,特别是在需要根据输入和输出构建自定义逻辑的场景。
下载地址
用户评论