Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #14528
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | Quintus Folks were not hating Prolog that much (Was: the desease of C code overkill) |
| Date | 2025-05-28 16:32 +0200 |
| Message-ID | <10176q2$2kri$1@solani.org> (permalink) |
| References | (2 earlier) <vis014$raku$1@solani.org> <vis06a$rapp$1@solani.org> <100uhte$8rfn$1@solani.org> <100uigj$aeol$1@solani.org> <10175l3$2k2r$1@solani.org> |
Hi, Quintus Folks were not hating Prolog that much. If you inspect the source code you find mirriads of utilities written in Prolog itself. Now we find Prolog implementors which seeem to be more in love with the host language than with Prolog itself, they often totally miss the point, that Prolog is a much more elegant and concise language than their host language. Namely: - Prolog doesn't need to declare a type of variable - Prolog doesn't need malloc and free explicitly - What else? Probably some more postive properties of Prolog, make it the ideal language to write most of a Prolog system in Prolog itself, such as: - The top-level including answer substitution display - Tools such as listing/1 including annonymous variable - What else? Mild Shock schrieb: > I don't understand why some Prolog systems tend to gravitate > more and more into implementing everything in C. I don't see > any advantage. Take listing/1, do you get clauses faster and better > > printed when you use C? Starting with the pretty/1 implementation > in Prolog itself I am pretty sure things can be enhanced. Similarly a > top level written in pure Prolog can be advantageous. > > SWI-Prolog has a similar deseases of C code overkill sometimes. > > The only argument for C is maybe a different datastructure for > variable_names. But the algorthm I posted on comp.lang.prolog > doesn't need a different datastructures, its just a > > pairing algorithm. Running through both the term_variables > and term_singleton lists in parallel. So there is no advantage of > C code at all. > > Mild Shock schrieb: >> Hi, >> >> People from Vienna were always a little strange. >> Why not adopt term_singletons/2 its already around >> for a while. You can do quite some magic with it. >> >> Example: Determining singletons during listing, >> from Dogelog Player library(tester/tools): >> >> % sys_listing_write(+Term, +Stream) >> sys_listing_write(C, T) :- >> term_variables(C, V), >> term_singletons(C, A), >> sys_listing_names(V, A, 0, N), >> write_term(T, C, [quoted(true), variable_names(N), format(true)]), >> sys_answer_period(T). >> >> If term_singletons/2 has the same variable ordering >> guarantees, i.e. left to right, as in term_variables/2 >> you can use an algorithm without expensive lookup, >> >> sys_listing_names([], _, _, []). >> sys_listing_names([X|L], [Y|R], K, ['_'=X|S]) :- X==Y, !, >> sys_listing_names(L, R, K, S). >> sys_listing_names([X|L], A, K, [N=X|R]) :- >> sys_listing_name(K, N), >> J is K+1, >> sys_listing_names(L, A, J, R). >> >> Just run along the two lists , if something is both in >> the term_variables/2 and term_singletons/2 list, generate >> a '_' name, otherwise generate a synthetic name. >> >> Bye >> >> Mild Shock schrieb: >>> Hi, >>> >>> The development of Trealla Prolog and Scryer Prolog >>> looks like a random search in a mental ocean. >>> >>> It is like Prolog Development à la Sigmund Freud, >>> you have only to dig deep enough, and a solution >>> >>> will pop up. Otherwise blame your mother or other >>> relatives that raised you for supression. >>> >>> LoL >>> >>> Bye >>> >>> Examples: Still clueless how to detect singletons? >>> https://github.com/trealla-prolog/trealla/issues/743 >
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:26 +0100
Re: Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:33 +0100
Re: Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:41 +0100
Re: Ulrich Neumerkel is like Ozzy Osbourne Mild Shock <janburse@fastmail.fm> - 2024-12-05 11:44 +0100
Prolog Development à la Sigmund Freud (Was: Ulrich Neumerkel is like Ozzy Osbourne) Mild Shock <janburse@fastmail.fm> - 2025-05-25 09:46 +0200
variable ordering guarantees in term_singletons/2 (Was: Prolog Development à la Sigmund Freud) Mild Shock <janburse@fastmail.fm> - 2025-05-25 09:57 +0200
My stupid Dogelog Player falls back to _<number> (Was: variable ordering guarantees in term_singletons/2) Mild Shock <janburse@fastmail.fm> - 2025-05-25 10:18 +0200
the desease of C code overkill (Was: variable ordering guarantees in term_singletons/2) Mild Shock <janburse@fastmail.fm> - 2025-05-28 16:12 +0200
Quintus Folks were not hating Prolog that much (Was: the desease of C code overkill) Mild Shock <janburse@fastmail.fm> - 2025-05-28 16:32 +0200
Ciao Prolog inspired Test Case (Re: Ulrich Neumerkel is like Ozzy Osbourne) Mild Shock <janburse@fastmail.fm> - 2025-05-27 07:45 +0200
csiph-web