A Tour of Prolog

Поделиться
HTML-код
  • Опубликовано: 31 дек 2024

Комментарии • 24

  • @douglasmennella4525
    @douglasmennella4525 2 года назад +13

    I am brand new to Prolog with no background whatsoever but I do have an advanced degree in math. I’m extremely impressed with the degree of precision in these videos balanced by an extremely clean exposition. The two don’t necessarily go hand in hand and often appear to be near strangers. First of all thank you for your efforts, but also I want to share how impressed I am.

  • @kng1433-g4x
    @kng1433-g4x Месяц назад +1

    This was the best prolog intro I had! Also this emacs config is great, gonna try both of 'em soon, damm as a nvim guy you kinda stole my heart there.

  • @AleksyGrabovski
    @AleksyGrabovski 2 года назад +9

    Happy Birthday Prolog! After some time of learning it and using it in couple of programs, I can say that it is one of my favorite programming languages. Just 2 days ago I had to write a small program that had to select a proper approximating formula and compute a result given available data and do some dependency checking - it is so natural to do it in Prolog. Don't even try to imagine how many "if statements" I would've had to write in an imperative language.

  • @HakanKjellerstrand
    @HakanKjellerstrand 2 года назад +5

    Thanks for this very inspirational overview of Prolog!

  • @alexisbrodeur9548
    @alexisbrodeur9548 2 года назад +5

    New to Prolog, and finding it fascinating. Your videos, books, and papers are a true gold mine of relevant information.
    I've been reading "Coding Guidelines for Prolog" by Covington et al (2011), and was wondering how up to date it is.

  • @afonsorafael2728
    @afonsorafael2728 Год назад +1

    just a small question, what do you use to present the prolog statements as trees on the right buffer?
    It looks like Graphviz but I would like to know how to set up such application.

    • @ThePowerOfProlog
      @ThePowerOfProlog  Год назад

      Yes, this uses Graphviz internally! The program ships with Scryer Prolog, it is available in the "tools" directory, please have a look:
      github.com/mthom/scryer-prolog/tree/master/tools
      Thank you for your interest!

    • @afonsorafael2728
      @afonsorafael2728 Год назад

      @@ThePowerOfProlog Thank you very much for the answer, it is also now working on my system! :)

  • @zacharylarson1245
    @zacharylarson1245 2 года назад +4

    I'm a huge fan of your videos, have watched all of them, sometimes many-fold. Your video on http parsing was instrumental in opening the door for me to implement some useful web-scraping, for instance. Your website continues to be a source of inspiration and aspiration. Still scratching at the door of making an interpreter; I'd love to apply it to reason about state transitions on the Ethereum VM, for instance, etc.
    I'd love to hear more details about meta-interpreters and alternative execution strategies. Especially any foundation that might point the way for a generalizable parallel-processing prolog. Or as a means to reason about other logic formalisms, such as linear logic, LTL, other modal logics, etc.
    Also, I'd be curious to hear your take on ECLiPSe prolog, and their history/contributions to constraint programming? What about their implementation of arrays? How does introducing the array syntax `[]()` effect reasoning? I've had a lot of fun playing with optimization problems and have been impressed by their libraries that enable such versus, for example, miniZinc. Using prolog as a control-plane that interfaces with other solvers or can interop to other systems seems useful in this regard.
    Please keep making such solid content. It's a continued source of inspiration. Thank you!

    • @ThePowerOfProlog
      @ThePowerOfProlog  2 года назад +1

      Thank you so much for your kind words, I greatly appreciate them!
      I am very glad that you find this material useful, and thank you also for these suggestions and questions, I will strive to address them! Regarding parallel Prolog, it may be interesting to start with a few publications by Kazunori Ueda and his colleagues, such as "Concurrent Prolog Compiler on Top of Prolog": www.researchgate.net/publication/221135810_Concurrent_Prolog_Compiler_on_Top_of_Prolog
      Another interesting recent development is Web Prolog by Torbjörn Lager: torbjornlager.github.io/documents/manual-draft.pdf

    • @kng1433-g4x
      @kng1433-g4x Месяц назад

      ​@@ThePowerOfPrologI love you

  • @jasonrothfuss1631
    @jasonrothfuss1631 2 года назад +2

    Great video! I'm amazed at what I'm learning about Emacs from your videos, not just Prolog. What are you using to visualize the Prolog terms at 10:37?

    • @ThePowerOfProlog
      @ThePowerOfProlog  2 года назад +2

      Thank you a lot for your kind words! To visualize Prolog terms like this, I am using a small Prolog program called showterm.pl that I can invoke from Emacs (see showterm.el) by pressing F12. The program ships with Scryer Prolog and is included in its git repository, please have a look: github.com/mthom/scryer-prolog/tree/master/tools
      I hope you find it useful, enjoy!

    • @jasonrothfuss1631
      @jasonrothfuss1631 2 года назад +2

      Very useful - thank you!

  • @AndrewBerezovskiy
    @AndrewBerezovskiy 2 года назад +1

    Oh my, oh my, how did SWI-Prolog get omitted at 48:00? Thank you go a wonderful tour!

    • @ThePowerOfProlog
      @ThePowerOfProlog  2 года назад +1

      Thank you a lot! Regarding SWI-Prolog, please see this document for more information: www.complang.tuwien.ac.at/ulrich/iso-prolog/SWI7_and_ISO

  • @jorgschuster773
    @jorgschuster773 2 года назад +2

    Great video, thanks. What about making a video named "A Tour of Scryer Prolog". It could be reused as a source for a Scryer Prolog manual.

  • @ulrichvollert2277
    @ulrichvollert2277 2 года назад +2

    Very motivating video to reanimate my Prolog love ;-)

  • @jamievaughn9845
    @jamievaughn9845 2 года назад

    I'm surprised you didn't use the term "referential transparency" in the video, because Prolog seems like a language that makes referential transparency a first class citizen with it's goal/term expansions and query optimization feature. Very cool language and great job with the video to demonstrate Prolog's interesting features. I will check out the language. Do you know if there are any linear optimization tools written in Prolog like the simplex or something? I bet it would be good for that.

  • @SylvainSoliman
    @SylvainSoliman 2 года назад

    As usual, pretty neat stuff, thanks.
    TBH I'm a bit surprised by your first step. To show the versatility of Prolog I'd read this CSV file with Prolog (e.g. use_module(library(csv)) or something like that). Just keep the original CSV under version control, or for collaboration, rather than Prolog facts… It's easier for the next official Unicode release ;) [you won't have to repeat your emacs macro]
    This might be a bit "advanced" for a "Tour of Prolog", but seems more "real" to me (and safer since parsing CSV with quoting and such is actually quite tricky).
    (ok, then you don't have a neat collection of facts to "display", since they're built dynamically… but… I kinda have problems making sense of the first example otherwise)
    An example of "rule-based" reasoning that's "trendy" is actually unit testing, since defining a passing test is very often completely natural through rules… (though it rarely takes advantage of the relational aspect).
    The fact that there are several Prolog systems, and that they are evolving is either good or bad, depending on the point of view ;)
    It may feel very immature for a 50 y.o. language ^^
    Tiny remarks but if seen as a first video about prolog:
    For */1, I'd tend to write it using parentheses to make it visually clear that it's not simply "commenting out" the predicate, but real generalization of the argument.
    I'd also add useless single quotes around chars to make them more different from variables…

  • @hjklhjklhjklhjklhjklhjkl
    @hjklhjklhjklhjklhjklhjkl 2 года назад +1

    Thank you very much!

  • @trejohnson7677
    @trejohnson7677 Год назад +1

    Prolog in realtime?

  • @mikeamy4649
    @mikeamy4649 2 года назад +1

    german_english(
    "Wo gehn wir denn hinn? Immer nach Hause.",
    "Where are we going? Always home."
    ).

  • @maverickstclare3756
    @maverickstclare3756 2 года назад

    the big five oh