lin is a minimalist Rosette-based DSL for linear programming. Here's an example...
; declare variables (def desirability) (def supply) (def cost) (def price) (def profit) ; constrain variables (let (> price 0)) (let (> cost 0)) (let (equal? profit (+ (* 1 price) (* -1 cost)))) (let (> supply 0)) ; set variables (set desirability 90) (set supply 50) (set cost 5) ; maximize (max profit) ; solution (get price)
lin compiles your code to Rosette code applying one of a variety of solvers to compute satisfiable solutions.