Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > comp.lang.prolog > #14491
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | Re: Streamable DOM and obsolete put_code/[1,2] |
| Date | 2025-04-02 11:56 +0200 |
| Message-ID | <vsj1k3$m6op$1@solani.org> (permalink) |
| References | <vsj1an$m6gi$1@solani.org> |
Hi, Streamable DOM in the form of a "HTML writer", can be a real miracle. SWI, Ciao, etc.. none of the Prolog systems have a "HTML writer", it seems the prospect of a HTMLParser inside such "HTML writer", and that it is a state machine confuses the world view of many people. But the idea was already pursued by Tau Prolog. Just take an element: > <div id="writeme"></div> And then literally you only have to open it: > :- use_module(library(dom)). > >output :- > get_by_id(writeme, WriteMe), > open(WriteMe, write, Stream), > write(Stream, hello), > write(Stream, world). But it didn't have much adoption, rather cause more problems than solved any: > How getting all the sandbox output into html? > joseph-vidal-rosset opened on Aug 2, 2022 > https://github.com/tau-prolog/tau-prolog/issues/326 I do not blame the Philosopher trying to be a Prolog programmer. It had not much utility since write/1 now accepted and inserted HTML. Bye Mild Shock schrieb: > Hi, > > The development of Novacore takes interesting turns. > Originally more accidentially, because I observed it > can serve a few interesting use cases, like atomic > > logging with some unspoken or spoken gurantees, > I introduced put_atom/[1,2] in Novacore streams: > > > put_atom(S, A): > > The built-in succeeds. As a side effect, it adds > > the atom to the stream S. > > Now because I am revising my streamable DOMs, the > "HTML writer" part, I even went so far as to > bootstrap put_code/[1,2] from it: > > > put_code(Stream, Code) :- > > char_code(Atom, Code), > > put_atom(Stream, Atom). > > One can eliminate each put_code/[1,2] call such > as put_code(S, 0'\n) by a put_atom/[1,2] call > such as put_atom(S, '\n'). The performance is the > > same, in my case can be slighly better since under > the hood put_code and put_atom called the same > stream meachnism. > > But the main reason I eliminate put_code was > to have a single point. Because the Prolog > write_term/1 is 100% written in Prolog, in the > > end it only only uses put_atom. > > Bye
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar
Streamable DOM and obsolete put_code/[1,2] Mild Shock <janburse@fastmail.fm> - 2025-04-02 11:51 +0200
Re: Streamable DOM and obsolete put_code/[1,2] Mild Shock <janburse@fastmail.fm> - 2025-04-02 11:56 +0200
Re: Streamable DOM and obsolete put_code/[1,2] Mild Shock <janburse@fastmail.fm> - 2025-04-02 12:03 +0200
Space Junk might fall on your head [Scryer Prolog WASM] (Was: Streamable DOM and obsolete put_code/[1,2]) Mild Shock <janburse@fastmail.fm> - 2025-04-05 18:33 +0200
Editor’s Draf, 10 January 2025 - Trusted Types (Was: Space Junk might fall on your head [Scryer Prolog WASM]) Mild Shock <janburse@fastmail.fm> - 2025-04-05 19:00 +0200
*** 2025 Prolog Awards *** (Was: Space Junk might fall on your head [Scryer Prolog WASM]) Mild Shock <janburse@fastmail.fm> - 2025-05-25 13:48 +0200
Scryer Prolog has dethroned SWI-Prolog (Was: *** 2025 Prolog Awards ***) Mild Shock <janburse@fastmail.fm> - 2025-05-26 12:22 +0200
Nevertheless I have bad news for Prolog (Was: Scryer Prolog has dethroned SWI-Prolog) Mild Shock <janburse@fastmail.fm> - 2025-05-26 12:31 +0200
Cannot consult/1 after listing/1 (Was: Scryer Prolog has dethroned SWI-Prolog) Mild Shock <janburse@fastmail.fm> - 2025-05-28 12:09 +0200
Tau-Prolog Code Mirror Integration has Flaws (Was: Space Junk might fall on your head) Mild Shock <janburse@fastmail.fm> - 2025-06-05 09:54 +0200
Code Generation with write/[1,2] [Some Testcases] (Was: Streamable DOM and obsolete put_code/[1,2]) Mild Shock <janburse@fastmail.fm> - 2025-04-07 09:58 +0200
csiph-web