DACTAL.org
@dactal.org
📤 9
📥 2
📝 33
A notional organization for an experimental query language.
I should pretend I designed this feature intentionally, but in reality I just realized that because something/someprop.10 gives us the first 10 items from each group, you can also truncate each group to 10 items in place, like this: something/someprop|of=10
1 day ago
0
0
0
The Gallery now includes a DACTAL Sudoku solver! Or, more accurately, a Sudoku solution-process revealer.
dactal.org/dactal.html?...
7 days ago
0
0
0
This may not interest you until you suddenly hit a case where you need it, but you can now short-circuit a traverse operation when it gets its first results, like this: some data.<(.some expensive subquery) instead of running the subquery N times only to throw away N-1 of the results.
8 days ago
0
0
0
DACTAL,ATProto.fun
add a skeleton here at some point
22 days ago
1
0
0
A start/labeling operation can append to the existing list with ?label=+(subquery) ??label=+(subquery) And a start operation can use the value ONLY as a reference with =label =type Thus this form for setting a label if it isn't already set: ??district size=(=district size;~1000)
about 1 month ago
0
0
0
Sometimes you want (or just need) the results of another query in the middle of the one you're writing. Highlight the subquery and hit Command-U to unpack it.
loading . . .
about 1 month ago
0
0
0
Saved relative queries let you encapsulate complexity, like AEIODLT .possible words .by added letter And now you can decapsulate it again with command-I (for Inline).
loading . . .
about 2 months ago
0
0
0
Also: added regex filtering. And then, only a little later, added documentation of regex filtering.
about 2 months ago
0
1
0
If anybody can vibe-code embryonic ideas into slick apps, we're gonna get a lot of slick apps sealed airlessly around ideas that never got a chance to become. I want the opposite of that, unslick explorers of exposed exologic. We only start at the beginning.
dactal.org/Scrabble.html
about 2 months ago
1
1
1
Yesterday's excellent tiny realization: subtractive traversal is a set-disjunction operation, but subtractive traversal with duplicates is itemwise removal. ...x=(1,1,2,2,3,3),y=(2) .x,-y → 1,3 ..x,y → 1,1,2,3,3
2 months ago
0
0
0
dactal.org/dactal.html?...
2 months ago
0
0
0
On one hand, we already know all the prime numbers below 1000. On the other, here's the Sieve of Eratosthenes in a DACTAL query.
dactal.org/dactal.html?...
loading . . .
DACTAL
https://dactal.org/dactal.html?query=...queue%3D%28....from%3D3%2Cto%3D1000%2Cnumbers%29%2C%3Cbr%3E+++prime%3D%282%29%3Cbr%3E%3Cbr%3E%7Cnext%3D%28.prime%3A%40%401%29%2C%3Cbr%3E+multiplier%3D%28....from%3D0%2Cto%3D%5B%3D%281000-next**2%29%2Fnext%5D%2Cnumbers%29%2C%3Cbr%3E+sieve%3D%28%2Fnext%2Cmultiplier%3B.%5B%3Dnext**2%2Bnext*multiplier%5D%29%2C%3Cbr%3E+queue%3D%28.queue%2C-next%2C-sieve%29%2C%3Cbr%3E+prime%3D%2B%28.queue%3A%401%29%21&queryname=sieve+of+eratosthenes
2 months ago
0
0
0
I give you your carets back. ^ and ^^ for comments have been replaced by ??? for notes, so ^ is no longer a reserved character. ??? your notes here Notes in DACTAL are a null operation, not meta-text, which has some cool implications that I haven't thought of yet.
2 months ago
0
0
0
I moved the inline-math handling to a more sensible place in the resolution process, so now you can use it in traversal, grouping, sorting, or either form of annotation.
3 months ago
0
0
0
Realized and fixed an early-implementation laziness that evaluated :x=y as :(.x:@1:=y) instead of :(.x:=y)
3 months ago
0
0
0
Oh look, a Wordle solver that fits (kinda) in a URL.
dactal.org/dactal.html?...
loading . . .
DACTAL
https://dactal.org/dactal.html?query=xt+xa+gr+xe+gs%2C%3Cbr%3Exn+go+gr+xm+gs%2C%3Cbr%3Exc+go+gr+xp+gs%2C%3Cbr%3Exf+go+gr+xk+gs%2C%3Cbr%3Exw+go+gr+xd+gs%3Cbr%3E%3Cbr%3E%3F%3Fcolors%3D%28....g%3Dgreen%2Cy%3Dyellow%2Cx%3Dgray%3Bindex%29%3Cbr%3E%5Eparse%3Cbr%3E.%28....word%3D%28%3Cbr%3E++...._%2C%7E%5B+%5D%2Csplit.%28...characters%2Ccolorcode%2Cletter%29%3Cbr%3E++.%28....letter%2Ccolor%3D%28.colorcode.colors.name%29%29%3Cbr%3E++%7Cx%40%3B%3Cbr%3E%29%29%3Cbr%3E%3F%3Fwords%3Cbr%3E%3Cbr%3E%3F%3Fminmax%3D%28.%28%3Cbr%3E++.word%2Fletter%3Cbr%3E++++%7C%7Cmin%3D%28.of%3Acolor-%3Dgray....count%29%2C%3Cbr%3E+++++max%3D%28%3A%28.of%3Acolor%3Dgray%29.min%29%3Cbr%3E++%29%2Fletter%3Cbr%3E++%7Cmin%3D%28.of.min....max%29%2Cmax%3D%28..of.max%3A%401%29%3Cbr%3E%29%3Cbr%3E%3F%3Fpositions%3D%28.word%2Fx%7Cmust%3D%28.of%3Acolor%3Dgreen.letter%29%2Cnot%3D%28.of%3Acolor-green.letter%29%23%2Bx%29%3Cbr%3E%3Cbr%3E%3F%5B%2Fdata%2Fwordle_words.json%5D.fetch.data%3Cbr%3E.%28....word%2Cletters%3D%28....word%2Ccharacters..%28....letter%3D%28._%29%29%7Cx%40%29%29%3Cbr%3E%7Cfreqs%3D%28.letters%2Fletter%2Ccount%3Dfreq%7C-name%2C-key%2C-of%29%3Cbr%3E%7Cposition+errors%3D%28.letters%2C%28positions%29%2F%2Fx%3A-%28.letter%2C-not%29%2C%28.must%2C-letter%29%29%2C%3Cbr%3E+frequency+errors%3D%28.freqs%2C%28minmax%29%2F%2Fletter%7C%7Cfreq%3D%28.freq%3B%280%29%29%3Afreq%3C%28.min%29%2Cfreq%3E%28.max%29%29%3Cbr%3E%3A-%28.position+errors%2Cfrequency+errors%29%3Cbr%3E%3Cbr%3E%3F%3Fletters+left%3D%28%2Flx%3Dletters%7C%7Cletter%3D%28.lx.letter%29%2Cx%3D%28.lx.x%29%2Cleft%3D-count%2C-lx%29%3Cbr%3E%7Cscore%3D%28.letters%2C%28letters+left%29%2Fletter%2Cx%3Acount%3E1..of..left....total%29+%23score%3Cbr%3E%3Cbr%3E...multi%3D%28horizontal%29%2Cguesses%3D%28words%29%2Cwords+remaining%3D_&queryname=
3 months ago
1
1
1
To go with /@x, which groups consecutive sequences with shared x properties, you can now also do /@@y to group sequences that start with each occurrence of y. E.g grouping streams into listening sessions broken by gaps of more than 10 minutes between songs:
3 months ago
0
0
0
Realized that the recently-added |x@ shortcut, for annotating a list of items with their list indexes, was actually the beginning of the missing feature for doing running ranks/counts/totals. e.g. cumulative duration: tracks2||cumulative duration=@@duration
dactal.org/dactal.html#...
loading . . .
DACTAL
https://dactal.org/dactal.html#cumulative3:~:text=%3D%40%20annotation%20suboperator
3 months ago
0
0
1
Huh, worked out the Wordle logic in DACTAL form.
3 months ago
1
1
0
The new ?? label operation has the same labeling options as a ? start operation, but relative to, and without changing, the current list: tracks|others=(??this .artist.tracks:-(this)) This replaces the more limited special-casing of "=_" in starts: tracks|others=(?this=_ .artist.tracks:-(this))
3 months ago
0
0
1
Today in obsessive buffing of rough spots: Filter negation is now done with -, instead of !. tracks:-=Amaranth This was the only use of ! as a suboperator, which frees it up to be the repeat operator, instead of ??. messages._,replies!
4 months ago
1
0
1
reposted by
DACTAL.org
Every Noise at Once
4 months ago
Today's tiny DACTAL tweak that probably affects nobody: in an aggregation, semicolons explicitly identify aggregators. So this query is a count of counts; the first "count" is a property (of groups), the second "count" is the aggregator. tracks/artist...count;count
1
1
1
There have been many small improvements to DACTAL recently, all of them described in the also-much-improved interactive manual at
dactal.org
.
4 months ago
1
0
0
dactal.org
now starts with a little explanation of what this is before cannonballing into the syntax.
loading . . .
DACTAL
https://dactal.org/
7 months ago
0
0
0
you reached the end!!
feeds!
log in