Viewing profile — zmonx
zmonx
HN member- Joined
- Fri, Mar 27, 2015, 9:18 AM UTC
- HN karma
- 427
- Public activity
- 166 items
- HN profile
- View on Hacker News ↗
About zmonx
Introduction to modern Prolog: https://www.metalevel.at/prolog
Prolog on Stackoverflow: https://stackoverflow.com/questions/tagged/prolog
Prolog on Reddit: https://www.reddit.com/r/prolog/
Recent public activity
- story
-
comment
Comment #16510585
Whatever it does, I expect Emacs to not crash . If it cannot allocate more memory, I expect it to throw a Lisp exception that tells me so, not to crash the whole process. I greatly…
-
comment
Comment #16508428
You can crash Emacs for example with the recipe from #2099: $ emacs -Q --eval "(let (v) (while t (setq v (cons v v))))" In response to how such deep structures can arise: They may …
- story
-
comment
Comment #16428383
These are very good points! I would generalize "functional" to declarative though: Logic programming languages like Prolog and Mercury are also much more amenable to parallelizatio…
-
comment
Comment #16423407
Prolog has definite clause grammars (DCGs), which are very similar to monads. You can think of a DCG as giving you two implicit arguments, which you can use to express concatenatio…
-
comment
Comment #16399758
Yes, indeed! Please note that what makes this reasoning method so easily applicable in this case is uniformity of the abstract syntax, not of the surface syntax, which is also call…
-
comment
Comment #16390834
For one particular example where homoiconicity makes reasoning about programs easier, consider an important reasoning method called abstract interpretation : https://en.wikipedia.o…
-
comment
Comment #16388378
Please note that the creators of Julia no longer call it homoiconic [1]. The fact that you can access the AST in a language is not sufficient to make it homoiconic. There are sever…
-
comment
Comment #16387893
In my experience, that is an overgeneralization, though definitely a tempting one that is frequently encountered. That being said, I find that Prolog code is often more readable th…
-
comment
Comment #16387781
To distinguish homoiconic languages from others (where you may also "operate on the parse tree just the same as you can on regular program data"), a bit more qualification is neede…
-
comment
Comment #16387577
In my opinion, this article puts too much emphasis on reading , and too little emphasis on actually reasoning about programs in homoiconic languages like Prolog and Lisp, and due t…
-
comment
Comment #16378514
Yes, very much so. In addition, some of the automated translators I have seen also apply automated refactoring: They tend to merge similar sections of code and minimize the delta (…
-
comment
Comment #16377902
Although it may appear a bit surprising at first, assembly language is homoiconic in the sense that you can easily reason about the program code within the language: It is easy to …
-
comment
Comment #16122711
I agree, and recommend Biomake: https://github.com/evoldoers/biomake It uses the declarative programming language Prolog to write flexible rules. A logic programming language like …
-
comment
Comment #16054910
Very nice, thank you for sharing! I have one comment on the naming convention. Consider has_type/3 from the post. For example: has_type(_, true, bool). A better name for this would…
-
comment
Comment #16021071
The reason for this apparent discrepancy is found in the difference between strong and weak NP-completeness. The fully polynomial-time approximation scheme (FPTAS) for the knapsack…
-
comment
Comment #16018535
The authors have built a start-up based on these ideas: http://memcpu.com/ They provide their SAT solver as a service that you can try. A related paper I recommend in this context …
-
comment
Comment #16018220
This title is misleading: This was formulated as a question that was put forward (verbatim text: "Is a blockchain essentially a linked list?"), and the current answers are already …
-
comment
Comment #16003633
Very nice, thank you for posting this! Program slicing is especially useful when debugging and reasoning about programs in declarative languages, such as Prolog. In Prolog, it is n…
-
comment
Comment #15996699
25 years for acceptance are very well aligned with the timeline that Richard P. Gabriel has outlined in "Models of Software Acceptance": • Technology in the lab (t=0) • Technology …
-
comment
Comment #15938621
Thank you for sharing this! It's nice to see Prolog used for such tasks, which are a good fit for a logic programming language. I have one small suggestion that I hope you find use…
-
comment
Comment #15857447
The beauty of this is that a constraint solver (over finite domains, Boolean values, sets etc.) blends in completely seamlessly into the way Prolog works. From the perspective of P…
-
comment
Comment #15856958
Please see my profile page: It contains links that I find relevant for learning modern Prolog features. Every predicate you impose on the set of solutions can be regarded as a cons…
-
comment
Comment #15855375
In fact, the "old semantics" actually included language constructs that are only now becoming available (again) in Prolog systems. An example of such a construct is dif/2, which is…