00:27:20 -!- imode has quit (Ping timeout: 258 seconds). 01:52:50 `rainbow hello world 01:52:52 ​hello world 01:53:24 `cat bin/rainbow 01:53:25 cat: bin/rainbow: No such file or directory 01:53:34 `cat /bin/rainbow 01:53:35 cat: /bin/rainbow: No such file or directory 01:53:39 `ls 01:53:41 asmbf-1.2.6.tar.gz \ asmbf-1.2.7 \ banana.txt \ bfi \ compiled_brachylog.pl \ egel-master \ egel.zip \ just \ karma \ le \ output.b \ paste \ program \ spline \ spout \ test \ test.sh \ what.tar.gz 01:53:51 `ls .. 01:53:53 bin \ canary \ emoticons \ esobible \ etc \ f \ factor \ hw \ ibin \ interps \ karma \ karma.orig \ karma.rej \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ stuff \ tmflry \ tmp \ wisdom 01:53:57 `cd .. 01:53:58 cd? No such file or directory 01:54:08 huh, reorganized 01:54:13 -!- imode has joined. 01:54:30 `cat ../ibin/rainbow 01:54:31 cat: ../ibin/rainbow: No such file or directory 01:54:35 `ls wisdom 01:54:36 ls: cannot access 'wisdom': No such file or directory 01:54:41 `ls ../.. 01:54:42 bin \ dev \ etc \ hackenv \ lib \ lib64 \ proc \ sbin \ sys \ tmp \ usr 01:54:49 `ls ../../bin 01:54:50 bash \ bunzip2 \ bzcat \ bzcmp \ bzdiff \ bzegrep \ bzexe \ bzfgrep \ bzgrep \ bzip2 \ bzip2recover \ bzless \ bzmore \ cat \ chgrp \ chmod \ chown \ cp \ dash \ date \ dd \ df \ dir \ dmesg \ dnsdomainname \ domainname \ echo \ ed \ egrep \ false \ fgrep \ findmnt \ fuser \ grep \ gunzip \ gzexe \ gzip \ hostname \ ip \ journalctl \ kill \ less \ lessecho \ lessfile \ lesskey \ lesspipe \ ln \ login \ loginctl \ ls \ lsblk \ mkdir \ mknod \ m 01:54:52 oh d'oh 01:54:56 `ls ../wisdom 01:54:57 As the wisdom directory contains many files named after nicks, listing it in public annoys people. Try listing it in private instead. 01:55:05 ah, I see. 01:55:18 `cat ../bin/rainbow 01:55:19 print_args_or_input "$@" | pikhqbow 01:55:30 `cat ../bin/pikhqbow 01:55:31 ​ELF............>.....d@.....@.......°..........@.8..@.........@.......@.@.....@.@.....À.......À............................@......@............................................@.......@.....4......4........ ............8......8`.....8`.....H......X........ ...........P......P`.....P`.....à.......à..........................@.....@.....D.......D..............Påtd...X......X@.....X@.....,.......,... 01:57:52 `cat ../bin/print_args_or_input 01:57:53 ​#!/bin/bash \ if [ "$#" -gt 0 ]; then printf '%s\n' "$*"; else cat; fi 01:58:37 i wonder what the oldest files in hackeso are 01:58:46 `ls -lah .. 01:58:47 ls: invalid option -- ' ' \ Try 'ls --help' for more information. 01:58:52 `` ls -lah .. 01:58:53 total 344K \ drwxr-xr-x 22 1000 1000 4.0K Dec 31 16:10 . \ drwxr-xr-x 13 0 0 0 Feb 20 01:58 .. \ drwxr-xr-x 2 1000 1000 12K Jan 4 13:28 bin \ -rw-r--r-- 1 1000 1000 101 Jul 19 2019 canary \ drwxr-xr-x 2 1000 1000 4.0K Apr 7 2018 emoticons \ drwxr-xr-x 2 1000 1000 4.0K Apr 7 2018 esobible \ drwxr-xr-x 3 1000 1000 4.0K Jul 8 2017 etc \ prw-r--r-- 1 1000 1000 0 May 4 2019 f \ drwxr-xr-x 2 1000 1000 4.0K Jul 8 2017 01:59:02 `` ls -a .. 01:59:03 ​. \ .. \ bin \ canary \ emoticons \ esobible \ etc \ f \ factor \ .hg \ .hg_archival.txt \ .hgignore \ hw \ ibin \ interps \ karma \ karma.orig \ karma.rej \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quotes \ share \ src \ stuff \ tmflry \ tmp \ wisdom 01:59:10 It's a bit hard to tell, because the whole thing's been moved a few times. 01:59:30 yea, but could go through the mercurial. How long has it been up anyways 01:59:31 The "initial import" currently in the version control isn't the actual initial import either. 01:59:33 as a whole 01:59:48 like how old is hackego 02:00:21 It was born around June 2009. 02:00:32 So that's, what, 10 and a half? 02:01:13 https://esolangs.org/wiki/HackEso#History -- very briefly. 02:02:23 The alleged "Initial import" is from 2012-02-16, and already contained quite a bit, http://hack.esolangs.org/repo/file/e037173e0012 02:04:25 You could argue that in a sense some of the ibin/! stuff are likely the "oldest files", because those were copied over from EgoBot, which predates HackEgo. 02:10:36 `wisdom 02:10:37 ​gaspatsjo//gaspatsjo is a norwegian soup, which died out due to a lack of hot summer days 02:10:49 Hm, neat 02:13:58 `wisdom wise 02:13:59 ​wise//Uninstalling software installed by the Wise Installation Wizard is unwise. It's neither clockwise nor counterclockwise nor otherwise. 02:19:42 What I wonder is how many copies of most of this exists. I've got 6, I think. 02:28:03 `gforth 02:28:07 Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc. \ Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license' \ Type `bye' to exit 02:28:10 oh hey 02:28:36 There's a bit of a wrapper as well. 02:29:07 https://hack.esolangs.org/repo/file/tip/bin/forth -- auto-adds the 'bye'. 02:29:18 `forth 2 2 + . 02:29:19 4 02:31:26 So what would happen if you rm -rf /'d? 02:34:20 Depends on how exactly rm behaves with things. Assuming it actually removed the bits you have access to, it should get caught by a "have all the files been removed" check, because that's such a common idea. Assuming you circumvented that, it would commit a revision with no files, which either someone would `revert, or I'd do the same in an out-of-band manner because we don't need any more "delete and 02:34:26 then restore all" revisions in the history, they break a bunch of "who's edited this file" features. 02:35:12 https://hack.esolangs.org/repo/file/tip/share/scowrevs are pretty much all mass-edits of that kind. 02:35:46 Cool. 02:36:04 That is a really cool bot. 02:41:09 `` cut -d: -f1 ../share/scowrevs | while read r; do hg log -r $r -T '{desc}\n'; done | paste 02:41:18 https://hack.esolangs.org/tmp/paste/paste.1511 02:41:25 (All kinds of nonsense people have done.) 03:31:36 -!- LKoen has joined. 03:31:55 -!- LKoen has quit (Read error: Connection reset by peer). 03:51:07 -!- xkapastel has joined. 04:09:40 -!- Lord_of_Life has quit (Ping timeout: 258 seconds). 04:12:29 -!- Lord_of_Life has joined. 04:42:47 -!- tromp has joined. 04:47:57 -!- tromp has quit (Ping timeout: 272 seconds). 04:50:29 -!- FreeFull has quit. 04:53:37 -!- tromp has joined. 04:57:38 -!- tromp has quit (Ping timeout: 240 seconds). 04:59:38 -!- imode has quit (Ping timeout: 240 seconds). 06:10:53 -!- xkapastel has quit (Quit: Connection closed for inactivity). 06:41:35 -!- tromp has joined. 06:46:23 -!- tromp has quit (Ping timeout: 272 seconds). 06:56:29 -!- tromp has joined. 06:58:07 -!- tromp_ has joined. 07:01:35 -!- tromp has quit (Ping timeout: 272 seconds). 07:02:51 -!- tromp_ has quit (Ping timeout: 272 seconds). 07:33:26 Is it possible to configure Firefox so that selecting links in PDFs does not change the zoom level? 07:42:34 -!- tromp has joined. 07:44:34 -!- tromp_ has joined. 07:47:11 -!- tromp has quit (Ping timeout: 272 seconds). 07:49:43 -!- tromp_ has quit (Ping timeout: 272 seconds). 08:33:30 -!- tromp has joined. 08:47:12 also rm in gnu coreutils specifically has a check to catch that, because it's usually a typo 08:47:37 so you need a switch to override that 08:53:13 `" 08:53:14 1/1:39) If I ever made a game where you jabbed bears ... I'd call it jabbear. \ 773) i think in general it's against nature for an animal to be a boat 08:53:52 Hmm, two good ones, lucky me. 08:54:12 `wisdom 08:54:15 ​5318008//5318008 is a famous number because its reciprocal is 1.8804033389946 * 10^-7, which when upside down on a calculator spells L-vOI * ghGGBEEEOhOBB.I. 08:54:53 `cwlprits 5318008 08:54:55 rdocöc rdocöc rdocöc 08:55:12 `wisdom 08:55:13 ​aglist//aglist is update notification for the Abstruse Goose webcomic. http://abstrusegoose.com/ 08:55:23 `wisdom 08:55:24 ​nnection//Nnections are measured in millibytes per siemens. 08:55:39 fungot: spam? 08:55:39 int-e: it is the subjunctive tense, whereas " fnord" 2)) 08:55:58 @metar lowi 08:55:58 LOWI 200850Z 26005KT 9999 SCT075 BKN110 02/M01 Q1025 NOSIG 08:56:04 That's all. 09:21:59 -!- b_jonas has quit (Quit: leaving). 09:22:44 @metar essb 09:22:45 ESSB 200850Z 14005KT 9999 BKN012 01/00 Q1012 R12/09//95 09:29:37 The frequency at which Debian sid (unstable) gets updates of all the texlive packages is ridiculous. 09:34:34 (That may be unfair. What *is* ridiculous is the ratio between download size and the amount of data that changed.) 09:34:56 -!- cpressey has joined. 09:48:33 [[Sunny morning]] N https://esolangs.org/w/index.php?oldid=69977 * Hakerh400 * (+5825) +[[Sunny morning]] 09:49:18 [[Language list]] https://esolangs.org/w/index.php?diff=69978&oldid=69905 * Hakerh400 * (+20) +[[Sunny morning]] 09:49:29 [[User:Hakerh400]] https://esolangs.org/w/index.php?diff=69979&oldid=69588 * Hakerh400 * (+20) +[[Sunny morning]] 09:50:34 [[Sunny morning]] M https://esolangs.org/w/index.php?diff=69980&oldid=69977 * Hakerh400 * (+1) 10:17:01 -!- arseniiv has joined. 10:49:43 -!- Sgeo has quit (Read error: Connection reset by peer). 10:50:11 -!- Sgeo has joined. 11:02:59 https://mobile.twitter.com/Foone/status/1229641258370355200 is funny. 11:38:46 -!- wib_jonas has joined. 11:44:18 hi int-e 11:44:24 Do you like ABTs? 11:45:10 Algebraic Beta Types? 11:46:26 Abstract Binding Trees 11:47:02 What are they? 11:47:47 ABTs are ASTs with names-binders in them. Two ABTs are considered equivalent modulo alpha-conversion. 11:47:56 OK, I'm with you 11:49:29 cpressey: I'm not sure I like them. I know them under the name "nominal datatypes" though (or maybe they're different but then I don't know what the difference is) from the Isabelle bubble. And there's a nominal rewriting concept in the rewriting bubble, too. 11:50:57 I think I actually prefer nameless things (like de Bruijn indices) when push comes to shove. 11:52:49 cpressey: vegetarian alligator families? 11:53:09 (Obviously when there's nominal rewriting, there's also nominal logic.) 11:53:39 anyway, I manipulate a lot of data structures that have arrays with the order (or keys) not mattering, and indexes into such arrays from other tables 11:53:50 like database row identifiers and such 11:54:31 of course sometimes I choose an order or key that matters, for convenience, or an order that doesn't semantically matter but makes debugging easy if I show the data in order 11:54:52 "order of keys doesn't matter" <--> "associative maps (or arrays)" 11:57:13 int-e: I think of ABTs as sort of being "nameless in spirit". Converting ABTs to de Bruijn-indexed trees before comparing them (or doing other operations on them) sounds like possible way to implement them. 11:58:48 * int-e shrugs. 12:00:37 sometimes I even need to compare small sets of things in which the order doesn't matter, in which case I sort them before comparing 12:11:59 cpressey: I don't know, it just seems so shallow. 12:13:59 (I've googled a bit and it appears that the focus with ABTs is really more of a design pattern to work with terms modulo alpha, resolving names when they are constructed and giving back fresh names when they're navigated. But even that design pattern is very shallow.) 12:14:12 -!- sixyears has joined. 12:14:35 howdy folks 12:15:34 `relcome sixyears 12:15:35 ​sixyears: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 12:16:32 heck yeah, thank you 12:21:09 I've got this urge thats been floating around my head for a few years to make an esoteric programming language, but I'm honestly too inexperienced. figured i could soak up some information here via osmosis 12:21:52 is the channel inactive because its like 0 in the morning or is it just usually lowkey? 12:23:53 eh it varies, it's not super busy all the time 12:24:33 Fair! 12:24:35 There are logs (see the topic) so you can judge for yourself. 12:24:48 it's like most IRC channels I guess 12:25:18 ah, gotcha. Peak houra and trough hours 12:25:21 makes sense 12:28:02 You can always talk to fungot ;) 12:28:02 int-e: how faulty! :p. google did indeed have sufficient context? 12:28:34 Fungot how has your day bern 12:28:42 been* oops 12:30:06 is Fungot case-sensitive? 12:30:13 Seems like it 12:30:17 Apparently so, I didn't know that. 12:30:19 fungot do a jig 12:30:19 sixyears: because i'm investigating a strange bug in my brainfuck... and many of those are ds 12:30:38 cool jig 12:30:39 hi sixyears 12:30:45 Hey! What's up? 12:39:13 welcome, sixyears. 12:39:21 Thank you 12:39:55 sometimes the channel is mostly silent for days, like it's been now; sometimes we have like three different long involved conversations at the same time 12:40:00 sixyears: not a lot. I'm in Denver at the moment so it's not even 5AM yet 12:40:09 It's honestly 4 am for me and i am running purely on water bottles 12:40:20 er, not even 6AM 12:40:33 it's not even 5AM at home in San Francisco, which is the time zone my VPS is set to 12:40:49 fair! I'm also near sf 12:41:24 cupertino is cool its a small town with like a billion apple buildings 12:41:25 ``` for z in America/New_York America/Los_Angeles; do TZ="$z" date +"%Y-%m-%d %H:%M:%S %Z %z"; done 12:41:26 2020-02-20 07:41:26 EST -0500 \ 2020-02-20 04:41:26 PST -0800 12:42:06 okay a billion is exaggerating but 12:42:16 there are at least 50 12:42:25 i know because they are numbered 12:42:54 Have you checked that all the numbers are in use? 12:43:09 no honestly! theyre not all in order 12:44:00 instead of numbering with a grid system where one street is one range of numbers i think they have it like... a central building with rings of numbered ones? Maybe? 12:44:04 its just weird 12:44:22 like u got 17 next to 25 12:44:33 in what world did u think that was okay 12:45:08 It could be the order in which they were built. Maybe even re-using numbers to make it messy. Or not, to inflate the numbers. 12:45:19 Its very strange i should figure out the pattern someday when its not 4 AM 12:45:26 good point int-e 12:45:28 is there a map? 12:45:29 (build <--> acquired) 12:45:49 and do you work in one of those buildings? 12:45:54 i think it may be in order they were built 12:46:37 because some streets are in order like chunks of them and then you go right forward and theyre not anymore 12:46:48 which implies that they were probably built together 12:46:58 anyway no i do not work at apple 12:47:30 i just ended up passing by their weird spiderweb most days 12:48:32 wib_jonas: the city is called Cupertino if you have access to google maps rn 12:49:09 though some of their buildings enter neighboring cities such as saratoga and sunnyvale 12:50:26 https://en.wikipedia.org/wiki/File:Apple_Campus_2_aerial_Aug_2016.jpg looks weird 12:51:04 "Apple Park is the corporate headquarters of Apple Inc., located at One Apple Park Way in Cupertino, California, United States. ... Its circular design, courtesy of Norman Foster, and extreme scale have earned the structure a media nickname “the spaceship"." https://en.wikipedia.org/wiki/Apple_Park 12:51:34 Yeah! 12:52:03 Looks like crop circles but not fame 12:52:05 Fake* 12:52:33 IDK folks something abt apple just gets me in the uncanny valley 12:54:42 There's one on uh... Results Way 16 that is also constructed kinda interestingly 12:56:31 man i sound like a conspiracy theorist right now 12:56:50 watch out guys the evil building's gonna get you and feed your soul to the archons 12:59:01 no no, only a good building would serve the archons by feeding Apple people's souls to them 12:59:21 an evil building would sacrifice them to demon princes to power some devious spell 13:01:40 I don't imagine apple people souls have very high nutritional value anyway 13:01:44 shits like cardboard 13:09:21 I'm taking the train back to the Bay Area 13:09:29 ogh, rad! 13:09:33 Safe travels 13:21:51 ty 13:22:10 it's supposed to be one of Amtrak's most scenic routes 13:22:34 trains in America are not a fast way to travel, but they're very enjoyable 15:41:04 -!- imode has joined. 15:55:25 -!- sixyears has quit (Read error: Connection reset by peer). 15:55:48 zephyr? 16:14:05 -!- Lord_of_Life_ has joined. 16:15:26 -!- Lord_of_Life has quit (Ping timeout: 240 seconds). 16:16:29 yep 16:16:40 choo choo 16:16:53 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 16:17:37 it's real pretty 16:17:40 we're going through the foothills right now 16:18:07 they're covered in fresh snow 16:23:52 Been a while since I was in a train in the mountains 16:24:03 Actually... last October, in the Appenines 16:24:19 It was raining so the view wasn't great 16:39:40 -!- imode has quit (Ping timeout: 265 seconds). 16:59:56 -!- cpressey has quit (Quit: A la prochaine.). 17:18:19 Every time someone mentions the California Zephyr, it reminds me of the Unsong book. 17:36:31 BTW I have finished reading that one a month or so ago 17:48:01 -!- tromp has quit (Remote host closed the connection). 17:49:38 -!- imode has joined. 17:55:14 -!- tromp has joined. 17:57:56 -!- wib_jonas has quit (Remote host closed the connection). 18:04:21 -!- FreeFull has joined. 18:12:13 -!- tromp has quit (Remote host closed the connection). 18:20:00 -!- Phantom_Hoover has joined. 18:23:07 -!- aloril has quit (Ping timeout: 260 seconds). 18:31:00 -!- tromp has joined. 18:31:27 -!- aloril has joined. 18:43:41 -!- tromp has quit (Remote host closed the connection). 18:47:53 -!- tromp has joined. 19:02:31 -!- b_jonas has joined. 19:16:47 -!- Lord_of_Life has quit (Ping timeout: 260 seconds). 19:24:29 -!- Lord_of_Life has joined. 19:34:32 [[User:Asasnat]] https://esolangs.org/w/index.php?diff=69981&oldid=69976 * Asasnat * (+212) 19:45:53 [[Mindwhipper]] N https://esolangs.org/w/index.php?oldid=69982 * Asasnat * (+1358) Created page with "'''Mindwhipper''' (stylized '''mindwhipper''', previous planned name: '''asswhipper''') is a esoteric programming language created by User:Asasnat, who also created this artic..." 19:57:00 [[Mindwhipper]] https://esolangs.org/w/index.php?diff=69983&oldid=69982 * Asasnat * (+1) 20:02:14 [[Alphabet Stew]] M https://esolangs.org/w/index.php?diff=69984&oldid=61123 * DMC * (-11) /* Description */ 20:02:42 [[Alphabet Stew]] M https://esolangs.org/w/index.php?diff=69985&oldid=69984 * DMC * (-1) /* Description */ 20:44:25 [[Mindwhipper]] https://esolangs.org/w/index.php?diff=69986&oldid=69983 * Asasnat * (+46) 21:19:21 -!- LKoen has joined. 21:20:32 bonsoiir 21:20:49 hello LKoen 21:21:04 -!- shachaf has left ("not up for it"). 21:22:04 hello b_jonas 21:26:32 -!- LKoen has quit (Remote host closed the connection). 21:31:33 -!- LKoen has joined. 21:37:33 hello all too! 21:41:08 hi arseniiv 21:43:52 allo 21:44:01 -!- LKoen has quit (Remote host closed the connection). 21:44:16 -!- LKoen has joined. 21:52:26 -!- arseniiv has quit (Ping timeout: 240 seconds). 21:53:38 it's another 2's day 21:53:44 2020-02-20 21:53:48 2 bad it's not also Tuesday 21:54:20 "just press 2 for a while" 22:00:09 `datei 22:00:15 2020-02-20 22:00:12.819 +0000 UTC February 20 Thursday 2020-W08-4 22:00:35 yeah, it would have to say W??-2 for a Tuesday 22:15:43 ok, let's see this once more from the start 22:16:41 `fetch /hackenv/tmp/egel.zip https://github.com/egel-lang/egel/archive/master.zip 22:16:43 2020-02-20 22:16:43 URL:https://codeload.github.com/egel-lang/egel/zip/master [145944] -> "/hackenv/tmp/egel.zip" [1] 22:16:59 ``` set -e; cd /hackenv/tmp; rm -rv egel 22:17:00 rm: cannot remove 'egel': No such file or directory 22:17:04 ``` set -e; cd /hackenv/tmp; rm -rv egel-master 22:17:06 removed 'egel-master/lib/fs.ego' \ removed 'egel-master/lib/io/Makefile' \ removed 'egel-master/lib/io/channel.hpp' \ removed 'egel-master/lib/io/io.cpp' \ removed 'egel-master/lib/io/io.o' \ removed directory 'egel-master/lib/io' \ removed 'egel-master/lib/regex.ego' \ removed 'egel-master/lib/regex/regex.cpp' \ removed 'egel-master/lib/regex/Makefile' \ removed 'egel-master/lib/regex/regex.o' \ removed directory 'egel-master/lib/regex' \ rem 22:17:10 ``` set -e; cd /hackenv/tmp; rm -rv egel-master 22:17:11 rm: cannot remove 'egel-master': No such file or directory 22:17:19 ``` set -e; cd /hackenv/tmp; unzip egel.zip 22:17:21 Archive: egel.zip \ a518d99f704f07f90f507eb59ef904b40dd785dd \ creating: egel-master/ \ inflating: egel-master/.gitignore \ inflating: egel-master/LICENSE.md \ inflating: egel-master/NOTES.md \ inflating: egel-master/README.md \ inflating: egel-master/TODO.md \ inflating: egel-master/VERSION.md \ creating: egel-master/bugs/ \ inflating: egel-master/bugs/bug0-fixed.eg \ inflating: egel-master/bugs/bug1 22:18:17 ``` set -e; cd /hackenv/tmp/egel-master; make -C src LIBS="-ldl -lpthread -licuio -licui18n -licuuc -licudata" &>> buildlog 22:18:27 ``` set -e; cd /hackenv/tmp/egel-master; url buildlog 22:18:29 https://hack.esolangs.org/tmp/egel-master/buildlog 22:18:53 No output. 22:19:06 ``` set -e; cd /hackenv/tmp/egel-master; (rm -fv src/lift.o; make -C src LIBS="-ldl -lpthread -licuio -licui18n -licuuc -licudata") &>> buildlog 22:19:42 No output. 22:19:57 ``` set -xe; cd /hackenv/tmp/egel-master; (rm -fv src/thread.o; make -C src LIBS="-ldl -lpthread -licuio -licui18n -licuuc -licudata") &>> buildlog 22:20:30 ​+ cd /hackenv/tmp/egel-master 22:21:17 -!- LKoen has quit (Remote host closed the connection). 22:21:21 ``` set -xe; cd /hackenv/tmp/egel-master; ./src/egel -v 22:21:22 ​+ cd /hackenv/tmp/egel-master \ + ./src/egel -v \ egel 0.0.x \ Copyright (C) 2016 M.C.A. (Marco) Devillers 22:22:28 ``` set -xe; cd /hackenv/tmp/egel-master; (for m in io fs random regex; do make -C lib/$m LIBS="-ldl -lpthread -licuio -licui18n -licuuc -licudata"; done) &>> buildlog 22:22:49 ​+ cd /hackenv/tmp/egel-master 22:23:50 -!- LKoen has joined. 22:24:48 ``` set -xe; cd /hackenv/tmp/egel-master; (mkdir -p stage; cp -v src/egel lib/*.ego stage/) &>> buildlog 22:24:49 ​+ cd /hackenv/tmp/egel-master 22:25:41 ``` pwd 22:25:42 ​/hackenv/tmp 22:25:46 -!- egelbot has joined. 22:27:10 Neat. Egel works? 22:27:16 -!- Frater_EST has joined. 22:27:20 don't know yet, I'm still trying 22:28:07 Well, let me know if you need anything. 22:28:07 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; >a0.eg echo $'import "/hackenv/egel-master/stag/io.ego"\nusing System\nusing Math\nusing IO\n''def main = print "hello\nworld"'; /hackenv/egel-master/stag/egel a0.eg 22:28:09 bash: /hackenv/egel-master/stag/egel: No such file or directory 22:28:19 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; >a0.eg echo $'import "/hackenv/egel-master/stage/io.ego"\nusing System\nusing Math\nusing IO\n''def main = print "hello\nworld"'; /hackenv/egel-master/stage/egel a0.eg 22:28:20 bash: /hackenv/egel-master/stage/egel: No such file or directory 22:30:39 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = print "hello\nworld"'; "$l/egel" a0.eg 22:30:40 hello \ world 22:30:54 \o/ 22:31:32 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [F -> F 0; F 1; F 2; F 3; F 4; F 5][K -> print(tostring K+"\n")]'; "$l/egel" a0.eg 22:31:33 a0.eg:5:59:semantical:undeclared tostring 22:31:44 toString? 22:31:47 Unsure. 22:32:04 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [F -> F 0; F 1; F 2; F 3; F 4; F 5][K -> print(totext K+"\n")]'; "$l/egel" a0.eg 22:32:08 0 \ 1 \ 2 \ 3 \ 4 \ 5 22:32:20 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [F -> F 0; F 1; F 2; F 3; F 4; F 5][K -> print(totext(K*(K+1)/2)+"\n")]'; "$l/egel" a0.eg 22:32:21 0 \ 1 \ 2 \ 6 \ 8 \ 15 22:32:29 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [F -> F 0; F 1; F 2; F 3; F 4; F 5][K -> print(totext(K*K)+"\n")]'; "$l/egel" a0.eg 22:32:30 0 \ 1 \ 4 \ 9 \ 16 \ 25 22:32:42 wait, that previous one looked wrong 22:33:27 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = 2*(2+1)/2'; "$l/egel" a0.eg 22:33:28 2 22:33:35 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = 2*(2+1)'; "$l/egel" a0.eg 22:33:36 6 22:33:45 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = (2*(2+1))/6'; "$l/egel" a0.eg 22:33:46 1 22:33:57 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = ((2*(2+1))/6)'; "$l/egel" a0.eg 22:33:58 1 22:34:01 what? 22:34:02 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = ((2*(2+1))/2)'; "$l/egel" a0.eg 22:34:06 3 22:34:11 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = (2*(2+1))/2'; "$l/egel" a0.eg 22:34:13 3 22:34:18 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = 2*(2+1)/2'; "$l/egel" a0.eg 22:34:18 Did I get priorities wrong? 22:34:18 2 22:34:29 you set the associativity of multiplication and division wrong, yes 22:34:35 Right. 22:34:46 multiplications and divisions should be parenthisized from left to right 22:34:59 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [F -> F 0; F 1; F 2; F 3; F 4; F 5][K -> print(totext((K*(K+1))/2)+"\n")]'; "$l/egel" a0.eg 22:35:00 0 \ 1 \ 3 \ 6 \ 10 \ 15 22:35:27 See if I can fix that. 22:38:20 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [ForN B -> ForN 0 [K -> print(totext((K*(K+1))/2) + "\n")]] ([U -> U U 0][U K N -> ]) 22:38:20 bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file 22:39:28 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [ForN B -> ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]] ([U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop]) 22:39:29 bash: -c: line 0: unexpected EOF while looking for matching `'' \ bash: -c: line 1: syntax error: unexpected end of file 22:39:38 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [ForN B -> ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]] ([U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop])' 22:39:39 No output. 22:39:50 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [ForN B -> ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]] ([U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop])'; "$l/egel" a0.eg 22:39:51 ​(mainDOT1 (mainDOT5 mainDOT5)) 22:40:20 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [ForN -> ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]] ([U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop])'; "$l/egel" a0.eg 22:40:21 0 \ 1 \ 3 \ 6 \ 10 \ 15 \ 21 \ 28 \ 36 \ 45 \ 55 \ 66 \ 78 \ 91 \ 105 \ 120 \ 136 \ 153 \ 171 \ 190 22:40:31 let's use your fancy let statement 22:40:45 Pffrt. Not sure what goes wrong. Maybe it'll need a lot of thought. 2*3+1=7. 2*3/2=1... 22:40:57 Could be an error in parsing. 22:41:10 Bit experimental. 22:41:35 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = let ForN = [U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop] in ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]'; "$l/egel" a0.eg 22:41:36 0 \ 1 \ 3 \ 6 \ 10 \ 15 \ 21 \ 28 \ 36 \ 45 \ 55 \ 66 \ 78 \ 91 \ 105 \ 120 \ 136 \ 153 \ 171 \ 190 22:41:52 let me find the prime factoring thingy 22:42:01 no, not prime factoring 22:42:03 prime testing 22:43:08 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = [F->F F tuple 2 111][F B L U->[false->B|true->F F([T->T T 2][T C->[true->B|false->[false->B L|true->T T(C+1)](C*C<=L)](0==L%C)])(L+1)U](L ​(System:tuple 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109) 22:43:16 ok 22:43:46 I can probably install this, but I'll have to figure out what exactly to import and using, and write a wrapper 22:45:12 spruit11: what happens when two functions brought in with using have the same name? I'd like to have System:length (the string function) in the main namespace, rather than List:length from prelude.eg 22:45:30 I guess I could just modify the prelude, since I'm putting import and using statements somewhere anyway 22:45:32 It uses the first it finds in the context. 22:45:55 It would be trivial to check for clashes but I didn't implement that yet. 22:45:57 and rename List:length to List:len or something 22:46:17 I'll accept any pull request you make. 22:46:20 Well, most. 22:46:46 Or if you want it, I'll change it myself. 22:48:09 so the builtins go into System, Math, String. 22:48:26 Yah, and then there's IO for print. 22:48:42 those are not builtins, they're in the libs 22:48:45 But everything is unstable. You're about the first, except for me, who uses this. 22:48:46 I haven't looked at those in detail yet 22:49:11 At the moment, that's all 'alpha' stage. Like: Okay, this could work. 22:49:18 ``` cp -vi /hackevn/tmp/egel-master/include/{prelude,prelude-hackeso}.eg 22:49:19 cp: cannot stat '/hackevn/tmp/egel-master/include/prelude.eg': No such file or directory 22:49:27 ``` cp -vi /hackenv/tmp/egel-master/include/{prelude,prelude-hackeso}.eg 22:49:28 ​'/hackenv/tmp/egel-master/include/prelude.eg' -> '/hackenv/tmp/egel-master/include/prelude-hackeso.eg' 22:50:20 Looking at this now: https://github.com/egel-lang/egel/blob/master/src/syntactical.hpp#L612 22:50:28 Should be a bug somewhere. 22:51:23 ``` mkdir -pv /hackenv/interps/egel 22:51:23 mkdir: created directory '/hackenv/interps/egel' 22:51:43 ``` cp -v /hackenv/tmp/egel-master/stage/* /hackenv/interps/egel 22:51:45 ​'/hackenv/tmp/egel-master/stage/egel' -> '/hackenv/interps/egel/egel' \ '/hackenv/tmp/egel-master/stage/fs.ego' -> '/hackenv/interps/egel/fs.ego' \ '/hackenv/tmp/egel-master/stage/io.ego' -> '/hackenv/interps/egel/io.ego' \ '/hackenv/tmp/egel-master/stage/random.ego' -> '/hackenv/interps/egel/random.ego' \ '/hackenv/tmp/egel-master/stage/regex.ego' -> '/hackenv/interps/egel/regex.ego' 22:53:09 also I should put some more utilities to the prelude later, like numeric ranges and a foreach 22:53:51 in theory we could even invent a lazy list (iterator) type, but I won't bother with that now 22:54:11 Lazy lists are pretty straightforward. 22:54:29 sure, but if you want lists, you need like fifty functions for them 22:54:43 wait, I have a list library in prolog, let me show just how many you need 22:54:49 It's just a hassle in an eager language since you end up copying everything. Once eager, once lazy. 22:55:20 egelbot: def ones = [ _ -> (1, ones) ] 22:55:28 ^ I like that encoding. 22:55:32 egelbot: ones 22:55:32 ones 22:55:37 egelbot: ones nop 22:55:37 (System:tuple 1 ones) 22:56:28 'Push the button' approach. Everytime you supply an argument, it gives another head/tail. 22:56:40 Coalgebraic, I guess. 22:59:09 http://dpaste.com/34M0CW3 22:59:21 ^ and that doesn't even have range functions 23:01:43 I can almost read Hungarian, I guess. 23:01:43 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = 7 * /* this is a comment */ 7'; "$l/egel" a0.eg 23:01:45 a0.eg:5:16:syntactical:primary expression expected 23:01:52 ``` set -e; d=egel-scripts; mkdir -p $d; cd $d; l=/hackenv/tmp/egel-master/stage/; >a0.eg echo 'import "'"$l/io.ego"$'"\nusing System\nusing Math\nusing IO\n''def main = 7 * 7'; "$l/egel" a0.eg 23:01:53 49 23:01:54 Is it Hungarian? 23:01:56 how did comments work? 23:01:59 yes, it's Hungarian 23:02:07 'listak' 23:02:39 I wrote it for school stuff so it has comments in Hungarian 23:02:45 I wrote that one back in 2009 23:02:48 Right. Neat. 23:03:02 how do I write comments in egel? I know I asked this once, but I forgot 23:03:31 I was more hoping that you can almost real Prolog 23:03:54 Prolog isn't the problem. What you did takes some time. 23:04:00 https://esolangs.org/logs/2020-02-04.html#lOx 23:04:02 ah 23:04:02 I recognize some stuff. 23:04:18 there are comments about that library somewhere in the #esoteric logs where I explain it 23:04:36 but I don't know where 23:05:31 Hmm. Okay. But what does it do? 23:05:53 I recognize the list functions. Unsure about the lambda. 23:06:58 You can do this way more straightforward with the 'coalgebraic' list approach in Egel. 23:08:17 I.e., algebraic a list is something of type 1+(T,L[T]) -> L[T]. Coalgebraic, reverse the arrow L[T] -> 1+(T,L[T]). 23:08:56 Then, to make it work eager, 'push the button' and produce either a 'nil' or a 'cons' tuple. 23:09:10 `fetch /hackenv/tmp/egel-master/include/prelude-hackeso.eg https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg 23:09:11 2020-02-20 23:09:11 URL:https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg [3303/3303] -> "/hackenv/tmp/egel-master/include/prelude-hackeso.eg" [1] 23:09:38 I guess I should fix a small colist.eg. 23:11:19 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = let ForN = [U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop] in ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]'; /hackenv/interps/egel/egel a0.eg 23:11:20 a0.eg:2:50:semantical:undeclared < 23:12:16 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = 3 * 3'; /interps/egel/egel a0.eg 23:12:17 bash: /interps/egel/egel: No such file or directory 23:12:22 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = 3 * 3'; /hackenv/interps/egel/egel a0.eg 23:12:23 a0.eg:2:14:semantical:undeclared * 23:12:36 ``` set -e; cd egel-scripts; >a0.eg echo $'using System\n''def main = 3 * 3'; /hackenv/interps/egel/egel a0.eg 23:12:37 9 23:12:43 but that prelude has using System right in it 23:13:46 `fetch /hackenv/tmp/egel-master/include/prelude-hackeso.eg https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg 23:13:47 2020-02-20 23:13:46 URL:https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg [3358/3358] -> "/hackenv/tmp/egel-master/include/prelude-hackeso.eg" [1] 23:13:50 ``` set -e; cd egel-scripts; >a0.eg echo $'using System\n''def main = 3 * 3'; /hackenv/interps/egel/egel a0.eg 23:13:51 9 23:14:06 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = 3 * 3'; /hackenv/interps/egel/egel a0.eg 23:14:08 ​/hackenv/tmp/egel-master/include/prelude-hackeso.eg:48:31:semantical:undeclared length 23:14:22 that's better 23:14:52 `fetch /hackenv/tmp/egel-master/include/prelude-hackeso.eg https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg 23:14:53 2020-02-20 23:14:53 URL:https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg [3355/3355] -> "/hackenv/tmp/egel-master/include/prelude-hackeso.eg" [1] 23:14:59 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = 3 * 3'; /hackenv/interps/egel/egel a0.eg 23:15:00 a0.eg:2:14:semantical:undeclared * 23:15:15 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = (System.*) 3 3'; /hackenv/interps/egel/egel a0.eg 23:15:16 a0.eg:2:21:syntactical:primary expression expected 23:15:22 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = (System:*) 3 3'; /hackenv/interps/egel/egel a0.eg 23:15:23 9 23:15:32 why is it not running the prelude? 23:15:59 it looks as if it compiles the prelude but doesn't run it 23:16:05 strange 23:16:08 spruit11: ^ 23:16:21 spruit11: the lambda part is to define a closure type in prolog 23:16:22 Uh. 23:16:28 Oh right. 23:16:37 Lemme look at that prelude thingy first. 23:17:38 the closure has an argument list, a body which is just a prolog goal, and a set of variables that must not be copied when you copy the closure because they may be variables shared with the containing code 23:17:51 -!- LKoen has quit (Remote host closed the connection). 23:18:05 Oh right. Egel doesn't 'run' anything from imported files. It just imports all defs. 23:18:25 It should define your function though. 23:18:27 Test that. 23:19:05 other variables in the body have to be copied with copy_term, so that you can reuse the same closure body several times, even if unifications in it succeed 23:19:30 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = (isThisEvenRan; System:*) 3 3'; /hackenv/interps/egel/egel a0.eg 23:19:31 a0.eg:2:34:syntactical:) expected 23:19:54 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\n''def main = (isThisEvenRan; (System:*) 3 3)'; /hackenv/interps/egel/egel a0.eg 23:19:55 prelude-hackeso loaded \ 9 23:20:15 yes, but 23:20:34 spruit11: so I can't just stick my using statements into a prelude, I have to put them in my code? 23:20:39 I can do that, since I need a wrapper anyway 23:20:47 does it at least run imports? 23:21:28 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\n''def main = let ForN = [U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop] in ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]'; /hackenv/interps/egel/egel a0.eg 23:21:29 0 \ 1 \ 3 \ 6 \ 10 \ 15 \ 21 \ 28 \ 36 \ 45 \ 55 \ 66 \ 78 \ 91 \ 105 \ 120 \ 136 \ 153 \ 171 \ 190 23:21:43 it did at least import the IO module 23:21:52 ok, I'll remove the using statements from that prelude then 23:22:11 and add using System; using Math; using String; using IO to the wrapper 23:22:16 It doesn't run anything. Like Java, I think. It imports and runs the 'main', if defined. 23:22:21 `fetch /hackenv/tmp/egel-master/include/prelude-hackeso.eg https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg 23:22:22 2020-02-20 23:22:22 URL:https://hack.esolangs.org/get/tmp/egel-master/include/prelude-hackeso.eg [3254/3254] -> "/hackenv/tmp/egel-master/include/prelude-hackeso.eg" [1] 23:22:34 spruit11: yes, but isn't using a compile-time thingy? 23:22:47 No. 23:22:47 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\n''def main = let ForN = [U -> U U][U K N B -> if K < N then (B K; U U (K + 1) N B) else nop] in ForN 0 20 [K -> print(totext((K*(K+1))/2) + "\n")]'; /hackenv/interps/egel/egel a0.eg 23:22:48 0 \ 1 \ 3 \ 6 \ 10 \ 15 \ 21 \ 28 \ 36 \ 45 \ 55 \ 66 \ 78 \ 91 \ 105 \ 120 \ 136 \ 153 \ 171 \ 190 23:23:01 Look at this start: https://github.com/egel-lang/egel/blob/master/examples/colist.eg 23:23:21 Everything for colists should follow from that, mulling over comap at the moment. 23:23:36 ``` cp -vi /hackenv/tmp/egel-master/include/prelude-hackeso.eg /hackenv/interps/egel/ 23:23:39 ​'/hackenv/tmp/egel-master/include/prelude-hackeso.eg' -> '/hackenv/interps/egel/prelude-hackeso.eg' 23:24:01 I'll leave soon though, I won't write the wrapper now 23:24:21 No problem. 23:24:34 I'll think about colists a bit more and the parser problem. 23:28:44 Added the comap function. 23:28:53 Maybe make it pretty later. 23:29:01 https://github.com/egel-lang/egel/blob/master/examples/colist.eg 23:30:06 also I'll have to look at what these four libraries in lib can do 23:30:14 I mean their basics only 23:31:08 Yah, but very very alpha. Some are hurried implementations inspired by Ocaml, regex is just trying to get as much from libicu as I could. 23:31:18 But be my guest. 23:31:30 But I think you'll enjoy it more to just puzzle a bit. 23:31:49 I like your small programs. 23:31:52 More of those! 23:42:49 [[Sunny morning]] https://esolangs.org/w/index.php?diff=69987&oldid=69980 * Hakerh400 * (+275) Update commands 23:45:28 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\ndef main = ''let Range2 = [U -> U U][U U K N -> if K < N then cons K (U U (K + 1) N) N else {}] in ({3,4,5,6}, Range2 3 7)'; /hackenv/interps/egel/egel a0.eg 23:45:29 a0.eg:4:38:semantical:redeclaration of U 23:45:42 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\ndef main = ''let Range2 = [U -> U U][U K N -> if K < N then cons K (U U (K + 1) N) N else {}] in ({3,4,5,6}, Range2 3 7)'; /hackenv/interps/egel/egel a0.eg 23:45:43 ​(System:tuple (System:cons 3 (System:cons 4 (System:cons 5 (System:cons 6 System:nil)))) (System:cons 3 (System:cons 4 (System:cons 5 (System:cons 6 System:nil 7) 7) 7) 7)) 23:45:52 no 23:46:33 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\ndef main = ''let Range2 = [U -> U U][U K N -> if K < N then cons K (U U (K + 1) N) else {}] in ({3,4,5,6}, Range2 3 7)'; /hackenv/interps/egel/egel a0.eg 23:46:34 ​(System:tuple (System:cons 3 (System:cons 4 (System:cons 5 (System:cons 6 System:nil)))) (System:cons 3 (System:cons 4 (System:cons 5 (System:cons 6 System:nil))))) 23:46:44 better 23:48:57 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\ndef main = ''let Range2 = [U -> U U] [U K N -> if K < N then cons K (U U (K + 1) N) else {}] in let Foreach = [U -> U U] [U B nil -> nop | U B (cons A D) -> B A; U U B D] in Foreach [] (Range2 3 7)'; /hackenv/interps/egel/egel a0.eg 23:48:59 a0.eg:4:182:syntactical:-> expected 23:49:05 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 23:49:23 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\ndef main = ''let Range2 = [U -> U U] [U K N -> if K < N then cons K (U U (K + 1) N) else {}] in let Foreach = [U -> U U] [U B nil -> nop | U B (cons A D) -> B A; U U B D] in Foreach [K -> print (tostring K + ",")] (Range2 3 7)'; /hackenv/interps/egel/egel a0.eg 23:49:24 a0.eg:4:194:semantical:undeclared tostring 23:49:29 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\ndef main = ''let Range2 = [U -> U U] [U K N -> if K < N then cons K (U U (K + 1) N) else {}] in let Foreach = [U -> U U] [U B nil -> nop | U B (cons A D) -> B A; U U B D] in Foreach [K -> print (totext K + ",")] (Range2 3 7)'; /hackenv/interps/egel/egel a0.eg 23:49:30 3,4,5,6, 23:49:37 ``` set -e; cd egel-scripts; >a0.eg echo $'import "/hackenv/tmp/egel-master/include/prelude-hackeso.eg"\nusing System\nusing IO\ndef main = ''let Range2 = [U -> U U] [U K N -> if K < N then cons K (U U (K + 1) N) else {}] in let Foreach = [U -> U U] [U B nil -> nop | U B (cons A D) -> B A; U U B D] in Foreach [K -> print (totext (totext K) + ",")] (Range2 3 7)'; /hackenv/interps/egel/egel a0.eg 23:49:38 3,4,5,6,