I am a physics student interested in programming languages. So not being too familiar with type theory, my questions might sound confusing or just don't make sense.
Just from browsing the docs isn't there some sort of duplication of the same expressive power:
Eg.: Recursive algebraic data types and datalog relations?
Couldn't we model part of the algebraic datatypes as datalog as well, this way avoiding different syntax, providing the same functionality.
What do you think of this paper by Aaron Stump:
Stump, Aaron, Benjamin Delaware, and Christopher Jenkins. "Relational Type Theory (All Proofs)." arXiv preprint arXiv:2101.09655 (2021).
Thank you for your fast response!
I first got interested in logic programming by reading this blog post by Bill Wadge about 'extensional higher order prolog' (hopes).
There is also a higher order datalog.
With sets and maps you can express the same things as in Datalog
But Datalog is much more concise and has the potential to be much more efficient, ...
So why not economize on syntax and implement algebraic datatypes as datalog rules with special restrictions as well. Note I am just starting to learn flix, so I am sorry, if that question does not make sense.
Hi @v217 - I have a Flix database (JDBC) access library here - https://github.com/stephentetley/flix-basicdb
It's intended to connect with a database and send "SQL as strings" to it and decode resulting resultsets. Any higher level representation than "SQL as strings" would be built as a library on top of it.
I also have a project FactIO - https://github.com/stephentetley/factio - to read and write Flix Datalog facts as CSV and database rows (through JDBC). Recently, however, I've been thinking that standalone libraries for CSV and database access would be better than FactIO. flix-basicdb is almost capable for storing facts in a database, but I would need to start a new project for CSV with the existing code from FactIO.
Thank you @magnus-madsen and @stephentetley
This will be the first library I install.
I've seen the supplemental video to "Fixpoints for the masses: programming with first-class Datalog constraints" - very impressed. I always write that I am a beginner, so that there is no confusion that a question is a critique but rather a "why question, I like to find an answer to"
java -jar flix.jar your_program.flix --args "your args here"
Hey all. I just learned about Flix recently. Love the logic programming aspect of it. I use a lot of Kotlin at work, which often disappoints me in the realm of type inference, and whereas Scala (especially recent versions) does not have great Android support. Flix seems promising as a proper ML on the JVM
Great to hear! We agree with the type inference issues of other languages.
I was wondering if Flix would be usable on Android, or if anyone has tried that out yet. Does the compiler target a particular JVM bytecode version, or is this flexible?
We current target 1.8 (I think- forgot what the internal version is called).