9 ms·
The FAQ of comp.lang.prolog is maintained as a Prolog source file
- deleted 7y ago[deleted]
- YeGoblynQueenne 7y agoSwi-Prolog includes an http client/server library: https://www.swi-prolog.org/pldoc/doc_for?object=section(%27packages/http.html%27) https://www.swi-prolog.org/pldoc/doc_for?object=section(%27p... And of course, a lot of support for the semantic web: https://www.swi-prolog.org/web/index.txt https://www.swi-prolog.org/web/index.txt The entire Swi-Prolog website at https://www.swi-prolog.org/ https://www.swi-prolog.org/ runs on the Swi-Prolog web libraries - they call it "eating your own dog food": https://www.swi-prolog.org/dogfood.txt https://www.swi-prolog.org/dogfood.txt
- 7thaccount 7y agoThe Perl6 (now Raku) language implementors use that phrase a lot as well. I wonder where it originated.
- mhd 7y agoThere's a decent Wikipedia article about it: https://en.wikipedia.org/wiki/Eating_your_own_dog_food https://en.wikipedia.org/wiki/Eating_your_own_dog_food The first alternative phrase is hilarious to my German ears.
- YeGoblynQueenne 7y agoI'm... not sure I should ask you to explain ~.-
- tom_mellior 7y agoThey might be referring to this: https://en.wiktionary.org/wiki/Natursekt https://en.wiktionary.org/wiki/Natursekt
- mhd 7y agoI was. But thanks for the link, it made me check out the etymology of "Sekt" (sparkling wine) and that was quite surprising.
- zimpenfish 7y agohttps://en.wikipedia.org/wiki/Eating_your_own_dog_food https://en.wikipedia.org/wiki/Eating_your_own_dog_food Seems to be Microsoft internal comms, 1988.
- mark_l_watson 7y agoI used to enjoy hacking with Prolog, and I used Swi-Prolog when experimenting with the semantic web, in the sw’s early days. My only real problem with Prolog is that I have only been paid to use it for one intense six week project and a few one or two day gigs. I compare this to getting lots of work with Common Lisp, Java, Ruby, Haskell, Python, etc. Contact me if you have Prolog work you want done :-) Swi-Prolog really is an amazing ecosystem.
- wtetzner 7y agoSorta weird that the path ends in .txt but the URL returns HTML, even if you use Accept: text/plain Would be nice if it could provide either based on the Accept header.
- simplify 7y agoProlog also has some really impressive debugging tools. It allows you to pause execution, change the code, and then resume execution from an earlier point in time. Michael Hendrick's "Production Prolog" talk gives a demo of this (at 12:17) https://www.youtube.com/watch?v=G_eYTctGZw8 https://www.youtube.com/watch?v=G_eYTctGZw8
- brian_herman 7y agoMy teacher talked about prolog in college in my programming languages course at UIC. It was really cool to see him talk about his thesis. https://cs.uic.edu/profiles/joe-hummel/ https://cs.uic.edu/profiles/joe-hummel/
- djsumdog 7y agoI think the last time I touched prolog was in University. Looking back through my class assignments, I think we discussed prolog but didn't actually write anything in it. The only assignment I see from that era was writing our own First-Order-Inference engine (really basic implementation; lots of limitations): https://github.com/sumdog/assignments/tree/master/csc4240-program2 https://github.com/sumdog/assignments/tree/master/csc4240-pr...
- rho4 7y agoStory of my life. In my opinion the best tool for basically all jobs is usually the main programming language of your project / team / company. Everyone can read it, change it and run it. It can do everything. It has the best tooling support. The best IDE, which everyone has installed, licensed and knows how to operate. It is hopefully compile- and type safe. It is hopefully under source control. And hopefully a mainstream language, so you can find tons of help and resources online. But for some reason, every f* new task is always first solved with some interpreted weakly typed scripting language, shell script or batch file, config file, xml programming, open source tool or web service. Unversioned, and with the weakest tool and team support imaginable. Probably a separate git repository with separate login credentials is created somewhere along the way as well.
- YeGoblynQueenne 7y agoI feel your pain. For me the worse case of this is web dev, where there's a different language for every task: html, CSS, javascript, SQL, your back-end language, XML, JSON, and so on. But, Swi has my back on that, too: https://www.swi-prolog.org/FAQ/PrologLAMP.txt https://www.swi-prolog.org/FAQ/PrologLAMP.txt Can I replace a LAMP stack with SWI-Prolog? Yes, you can, and you'll be happier for it. LAMP is short for the following open source components to realise a web server: Linux Apache MySQL PHP In this picture, Linux provides the OS, Apache the web server, MySQL the database and PHP server-side scripting facilities. In fact, most of these components can be replaced. One can replace Linux with almost any other OS, Apache with Nginx, MySQL with PostgreSQL. PHP is similar to ASP. There are also larger replacements of this stack, such as Tomcat, which replaces both Apache and PHP. Similar architectures are available for Python (django), Ruby (Ruby on Rails) etc. As we will see below, this is the picture into which SWI-Prolog fits. The SWI-Prolog web framework The SWI-Prolog web framework (obviously) does not replace the OS. It does replace Apache, PHP and to some extent MySQL. We could refer to the stack as LP (Linux Prolog). Below, we point at the various libraries that make up the stack and relate them to the LAMP components they replace. You can't quite replace html/css/js of course, since the browsers depend on them- but they can be embedded in Prolog easily. I believe the http library in my other comment here has facilities to do this. Also- if you ever need to write a parser for some topsy-turvy ad-hoc markup language some third-party is using that you are forced to process, Prolog is probably the best language to do this, thanks to its Definite Clause Grammars notation that's basically BNF, except that it's not restricted to context-free grammars: https://en.wikipedia.org/wiki/Definite_clause_grammar https://en.wikipedia.org/wiki/Definite_clause_grammar
- NaNtales 7y agoThis reminds me of the C++ coding standard used at game company Splash Damage which is maintained as a compilable source file (+ header)[1]. [1] https://github.com/splash-damage/coding-standards https://github.com/splash-damage/coding-standards
- tetron 7y agoI was really hoping this would be structured as a set of assertions which would then be used to generate answers in response to queries.
- subjectsigma 7y agoI don't know if he browses this site, but wanted to give a quick thank you to Markus Triska - the posted website and his YouTube channel are both simple but informative Prolog resources. He's also made many contributions to SWI-Prolog and a new experimental flavor called Scryer. Would encourage everyone to give it a quick look, especially the fantastic reif and ediprolog tools. Thanks Markus!