
A Common Lisp library for solving linear programming problems - lerax
https://github.com/neil-lindquist/linear-programming
======
namibj
The with-solved-problem macro shows how (in this case, I think termed
"unhygienic") Lisp macros allow fancy stuff with the code-is-data approach.

The first argument seems to be a normal Lisp expression, with no special
syntax, and the second argument has the solution variable and all the
variables mentioned in the expression bound to (the solution object, the
values of the variables in the solution it found).

This approach is obviously available for everything. You can just use fully-
flexible S-Expressions as essentially function arguments, _and the function
can modify the variables / identifiers in scope during execution of it's
arguments_.

It makes me want to do more with Racket again...

~~~
behnamoh
You mention good points about why Lisp could be advantageous compared with
other languages in this context. That actually was my question when I read the
post. But mind you, aren't Racket's macros hygienic?

~~~
ddragon
Hygienic Macros usually have ways to violate the hygiene, so that property
doesn't change how expressive they can be, just that the default behavior is
safer because you won't accidentally overwrite anything on the scope the macro
was called from.

And yes, racket's macros are hygienic.

------
panzerklein
Another recent computation library for Common Lisp:
[https://github.com/numcl/numcl](https://github.com/numcl/numcl)

~~~
srean
What intrigues me (in a good way) is this:

    
    
         Copyright (c) 2019 IBM Corporation
    

Is IBM upto something ?

~~~
jsjolen
The author is paid by IBM to work on this. The author combines ML and
classical AI to achieve explainability in ML.

This is one guy by the way, so not like a huge effort by IBM.

~~~
srean
Thanks for the information. Very interesting. IBM of course is the owner of
CPLEX one of the famous LP solvers.

I still hold out hope that the likes of Gurobi or CPLEX would be replicated by
open source or they themselves would be open sourced. There is GLPK, but from
what I hear and read its performance is not at par. There is Glop by Google
but have not tried it.

------
dshacker
How is this different from miniKanren? Isn't this logical programming? Or is
it more of a simplex NSAT solver?

