ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
clacke_movim has left #picolisp [#picolisp]
clacke_movim has joined #picolisp
[rg] has quit [Ping timeout: 246 seconds]
[rg] has joined #picolisp
<rick42> Regenaxer: thanks for the "plug" :)
<rick42> sorry about the URL change. happened a bit ago and I forgot about it.
<rick42> beneroth: on 302, I supposed I could set that up. thanks
[rg] has quit [Ping timeout: 248 seconds]
freemint has quit [Ping timeout: 248 seconds]
orivej has joined #picolisp
[rg] has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]
<rick42> beneroth: it just does a rewrite now. nothing fancy :)
<DKordic> "[object +protected [cons +private +public +super]]"? Should it be defined in "cls"? Shouldn't we have "[doc 'lst]"?
<DKordic> Greetings rick42!
<DKordic> Why isn't it "[LeEXPR . ~...]" instead of "[@ . ~...]"?!
ubLIX has quit [Quit: ubLIX]
[rg] has quit [Quit: Konversation terminated!]
<Regenaxer> DKordic, I do not understand the question
<DKordic> IMHO, "LEXPR", "FEXPR" and "subr" should be defined instead of just "@"-fun. For example, "[def 'lst [subr L L]]".
<DKordic> [>_ : lst -> [subr L L]]
<DKordic> [>_ : quote -> [FEXPR E E]]
<Regenaxer> defined?
<Regenaxer> documented?
<DKordic> Subroutines could be represented like "lst" above. Why is current representation better?
<Regenaxer> You talk about the references?
<DKordic> Yes, and the implementation.
<DKordic> Perhaps Language itself.
<Regenaxer> Then write a new language
<DKordic> Of course.
<Regenaxer> ok
<Regenaxer> SUBR, FEXPR etc are just terms from other Lisps. PicoLisp has strictly spoken no such distinction
rob_w has joined #picolisp
<Regenaxer> On the lowest level there is only one type of fugction
<Regenaxer> FSUBR in that terminology
<Regenaxer> The rest is dynamic
<Regenaxer> so your idea is a restriction
<Regenaxer> static
<beneroth> Good morning
<Regenaxer> Hi beneroth ☺/
<DKordic> Reference already mentions "fun" type. Why isn't "fun" defined? [>_ : list -> (fun @ (args)) : quote -> (fun L L)]?
<beneroth> DKordic, there are no classed for protecting a symbol. protection is a property of symbols (the symbol NIL), and symbols are not classes but can be.
<DKordic> Good morning Regenaxer, beneroth.
<Regenaxer> DKordic, I don't get what you mean
<beneroth> I think I do
<Regenaxer> fun is not only a list
<beneroth> he talks about language definition
<DKordic> beneroth: I was suggesting an idom to implement private and protected, if I am correct.
<beneroth> the reference "defines" 'fun as parameter-type in the documentation - this is only a thing of the documentation, does not exist in the implementation. and it should not.
<Regenaxer> T
<beneroth> DKordic, private / public access restrictions does not exist in picolisp, everything is public, private does not exist at all.
<beneroth> full control to the programmer
<beneroth> private in other language is basically controlling the access of other programmers
<Regenaxer> Some "privacy" is there though through transients and namespaces
<DKordic> I agree. Subclass +private of +protected implements private namespace and +protected is a subclass of +public, ricght?
<Regenaxer> no
<Regenaxer> classes have nothing to do with namespaces
<beneroth> it is not implemented that way, though you could think about those concepts in such a way.
<beneroth> T
<DKordic> I might be wrong.
<Regenaxer> inherited stuff is private to classes, yes
<DKordic> Yes I was wrong about Namespace as implemented by "symbols".
<Regenaxer> namespaces are for the reading of symbols
<beneroth> not like private modifier in C++, Regenaxer
<Regenaxer> private modifier in C++ is a namespace thing, right?
<Regenaxer> it just hides
<Regenaxer> on linker level you see that
<Regenaxer> names are mangled
<beneroth> yeah it is, practically, though afaik it is not really part of C++'s namespace implementation.. more like the namespace implementation was at the beginning an abuse of OOP private nesting, I think.
<beneroth> T
<Regenaxer> ok
<DKordic> Sorry, I caused a misunderstanding.
<beneroth> np
<Regenaxer> So C++ has 2 levels of namespaces kind of
<beneroth> T
<beneroth> well 3
<DKordic> I was suggesting a prefix classes to implement such functionality, as I understand it.
<beneroth> it inherits the "file" level namespace from C, I think
<beneroth> similar to pils transients scoping
<Regenaxer> DKordic, I see, this should be possible
<beneroth> T
<DKordic> beneroth: There are also Class, AKA Static, and... normal methods, right?
<beneroth> not really applicable to picolisp. there is class, which produces a symbol which follows certain conventions.
<DKordic> If it's simple enough we might slip it as an example in the Ref?
<beneroth> but there is no static - static is just methods defined on the top parent class
<beneroth> every object could have it's own methods
<beneroth> all dynamic
<DKordic> Class Methods don't have "This", AKA "self", Parameter.
<beneroth> no vtable in picolisp, methods get dispatched dynamically during runtime
<Regenaxer> 'static' in eg. Java corresponds to normal functions (non OOP) in Pil
<beneroth> there is the 'This variable in methods. but technically it's a global variable which is automatically set (let) when entering a method
<beneroth> Regenaxer, T
<DKordic> beneroth: Even better! I missed that.
<beneroth> DKordic, see ref description of (try)
<beneroth> 'try in picolisp is part of the OOP message handling. has nothing do with (catch) or (throw) ;-)
<Regenaxer> true
<beneroth> Regenaxer, java is such an abomination, even just it's concepts. pretends "everything is OOP", but than it has non-OOP data-types (and some other non-OOP parts in some special contexts)
<Regenaxer> thats confusing, but pil's try is older than Java
<Regenaxer> beneroth T
<beneroth> hm, no idea how old C++'s try is - maybe younger than Java
<beneroth> C++ can catch all data types :)
<beneroth> Templates make C++ really much more powerful and both elegant and efficient than Java's object casting trickery
<Regenaxer> OK, but it blows up the executable size
<beneroth> it's the cause of random performance behaviour in java, as you cannot tell sometimes when a cast is happening within the handling of a generic or when not / how costly it is
<beneroth> hm, T, it's basically code generation
<Regenaxer> yeah
<beneroth> macro vs. FEXPR
<Regenaxer> well, Java is also a memory hog
<Regenaxer> T
<beneroth> java programs just do (gc 2048) at every start :D
<beneroth> and too much overhead in their OOP structures
<Regenaxer> yes
<beneroth> the fun thing with C++ templates is, they're turing complete. you can implement everything in templates instead of C++ xD
<beneroth> fun for set theory
<Regenaxer> cool
<beneroth> not so fun for other stuff
<beneroth> I used and loved the "template specialisation" mechanic (e.g. having a general implementation of a template function, but for certain type of parameters, have a distinct implementation)
<DKordic> ""Richard: We are searching for Holy Grail. -- Sentry: We already got one. "" -- Monty Python's Flying Circus
<beneroth> on class templates the specialisation is used e.g. to implement vector<bool> as a bit-table in a integer, instead of a real array of bools
<beneroth> DKordic, a class thing with programming languages :)
<beneroth> (holy grails)
<beneroth> (golden hammers)
<Regenaxer> Isnt in C/C++ a bool alwyas an int?
<beneroth> no, its a char :D
<beneroth> which is always 1 byte
<Regenaxer> Not in C iirc
<beneroth> int size might vary
<beneroth> there is no bool in C
<beneroth> so people use int or char in C
<Regenaxer> ha, true
<beneroth> but no bool datatype in C.
<Regenaxer> right, it is alwyas typedef'd
<beneroth> Regenaxer, but in a way template specialisation in C++ is a weak FEXPR
<Regenaxer> understand
<beneroth> pretty amazing how more powerful picolisp is :)
orivej has joined #picolisp
<Regenaxer> good to hear :)
<beneroth> C++ understanding is really useful for theorizing, I find. through all my career (including my apprenticeship/school) I profited from grokking C++ before I entered IT :)
<Regenaxer> sounds good
<beneroth> I had more trouble with HTML (4.0 back then) than with C++ in the beginning. HTML has much arbitrariness in it, didn't grok that at first.
<Regenaxer> it is a mess, grown over time
<beneroth> I think it got better with HTML5, though still not elegant
<beneroth> it's more about semantic now, than mixing semantic and rendering
<beneroth> on the other hand, CSS is a ugly weird thing.
<Regenaxer> Yeah, I pretty gave up trying to deeply understand CSS
<DKordic> "Separation of Concerns" (http://alarmingdevelopment.org/?p=805).
<beneroth> Regenaxer, I suspect you tried to find some mechanics which are just not there.
<Regenaxer> right, ways to abstract something
<DKordic> Like, ""Common Sense""?!
<Regenaxer> indeed
<beneroth> not so common actually :)
<beneroth> (common sense.. the many-layered stack is very common, unfortunately)
<DKordic> What is the equivalent German phrase?
<Regenaxer> Vernunft ?
<beneroth> Gesunder Menschenverstand. Healthy human intelligence.
<Regenaxer> T
<DKordic> :3
<beneroth> nothing common about it :)
<beneroth> Vernunft is rationality.
<DKordic> Thank You.
<beneroth> You're welcome :)
<beneroth> MVC concept is still in full fashion. I came to the conclusion that it is only nice in theory. Not practical. Falls apart rapidly when taken to the extremes.
orivej has quit [Ping timeout: 250 seconds]
<beneroth> all practical implementations I saw so far just pretend to be MVC, but are at best VC
<beneroth> separation of concerns is a stupid idea. it's parent "divide and conquer" is correct.
<beneroth> concern has multiple dimension, but separation is always separating along one dimension.
<beneroth> I'll read around a bit on this blog, thanks DKordic
<Regenaxer> T, MVC is a rather academic-only concept
<beneroth> you would wish. it is widely used in industry, in web frameworks all over the place.
<Regenaxer> V and C can't be separated
<Regenaxer> M is OK
<beneroth> aye, that is the genius of your article :)
<beneroth> the one about form.l, I think,.
<Regenaxer> the "radical" one? It is older than form.l
<Regenaxer> the version(s) before
<Regenaxer> but same principles, yes
<beneroth> ah right, the radical one
<beneroth> yeah, from your java times. T
<Regenaxer> yes, and even before
<Regenaxer> late 80s, plain X11
<Regenaxer> Wow, since more than one week I'm doing development on smartphone-only ;)
<Regenaxer> My tablet broke down
<Regenaxer> I'm indeed a crazy minmalist
<Regenaxer> But it is possible, surprisingly well
<Regenaxer> All a matter of switching one's brain
<Regenaxer> i.e. keep a little more in the brain than in (optical) view
<Regenaxer> I have only 48 columns on screen now, as opposed to 80 on the tablet
<Regenaxer> But I modified Vip a little to make horizontal scrolling more intuitive
<beneroth> DKordic, lol this alarmingdevelopment.org person seems to me to be only another seeker stumbling in the dark. Knows the mainstream way is bad, but unable to find the light.
<beneroth> DKordic, anything worthwhile you would recommend from that blog? a read a few entries and that interview with a podcast - I found nothing interesting to me. "Our current way is bad" blabla, some nostalgia for 4gl, but no mentioning of lisp beside "lispers are just arrogant smugs" (paraphrased) :)
<beneroth> Regenaxer, you are a crazy minimalist
<Regenaxer> 😇
<beneroth> so you say, your memory is good enough for that (underused when working with a desktop pc), but just too small for being effective with larger Forth programs? :P
* beneroth hasn't done any forth yet
<Regenaxer> sadly yes
<Regenaxer> keeping track of the stack is too much
<beneroth> my shorttime memory is pretty bad
<beneroth> long-term memory can be extremely good, but sometimes it is a bit random towards what it saves
<Regenaxer> I feel opposite, long time mem is bad
<Regenaxer> all garbage-collected
<beneroth> "Everyone should at least agree that this should be the null hypothesis; i.e. that Lisp is probably no more powerful than e.g. C# despite macros and so forth, but that there is a selection effect because Lisp has super programmers"
<beneroth> bwahaha
<beneroth> on second thought: I hate talent-orientation. It is proofed in psychology that humans achieve better results when believing in hard work instead of fixed talent.
<beneroth> yes there are differences. but unused, untrained talent is practically worthless. and not doing training because one believes to not having talent is doing a lot harm.
<Regenaxer> true
<beneroth> this "lispers are just arrogant super-humans, it's not their tools, I hate parentheses"-people should be shown the picolisp kids video ;-)
<Regenaxer> ha, yes!
<Regenaxer> Tired of that parenthesis argument
<DKordic> beneroth: I couldn't find either. I was also disappointed by his view on Lisp.
orivej has joined #picolisp
freemint has joined #picolisp
andyjpb has joined #picolisp
orivej has quit [Ping timeout: 245 seconds]
andyjpb has quit [Ping timeout: 252 seconds]
rob_w has quit [Quit: Leaving]
<beneroth> Regenaxer, haha, just yesterday and today I had the same issue with importing numbers.. input (export from FileMaker database) as numbers (money) formated differently all the time.. e.g "7'000" "123" "123." "7`000.00" "123.00" "123.5"
<Regenaxer> ☺
<beneroth> (cond) and (match) to the rescue...
<Regenaxer> I would pre-process the data
<beneroth> then you have multiple iterations
<Regenaxer> add '.' to those fields which are meant to be fixpoint
<Regenaxer> In a pipe
<beneroth> would have to do it in the text file, cannot do it in the source application
<Regenaxer> I meant at (in (list ...)
<Regenaxer> Usually there are other conversions too
<beneroth> hm yeah I see
<Regenaxer> Charset
<beneroth> nah I ensure UTF-8 on import :)
<beneroth> isutf8
<Regenaxer> great
orivej has joined #picolisp
andyjpb has joined #picolisp
ubLIX has joined #picolisp
orivej has quit [Ping timeout: 245 seconds]
alexshendi has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
orivej has joined #picolisp
<rick42> lolol | <DKordic> ""Richard: We are searching for Holy Grail. -- Sentry: We already got one. "" -- Monty Python's Flying Circus
<rick42> hello, arrogant super-humans!
<rick42> beneroth: :)
<DKordic> o/ rick42
<rick42> DKordic: \o
<DKordic> sup?
<DKordic> inf?
<rick42> nothing, just boring work and chores. you?
<rick42> hehe
<Regenaxer> Hi rick42!
<rick42> hey Regenaxer!
* DKordic thinks... [cogs turning]
<rick42> Regenaxer: sorry about the URL change hehe
<Regenaxer> No problem!
orivej_ has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]
<DKordic> rick42: What might be the next blog post?
<Regenaxer> Beautiful!
alexshendi has joined #picolisp
<beneroth> sup rick42 o/
<beneroth> DKordic, haha, complete with occult Kabbalah, beautiful
<beneroth> lisp might be occultism, the problem is people mistake it for esoteric
alexshendi has quit [Read error: Connection reset by peer]
_whitelogger_ has joined #picolisp
Regenaxer has quit [Ping timeout: 248 seconds]
freemint has quit [Ping timeout: 248 seconds]
_whitelogger has quit [Ping timeout: 248 seconds]
alexshendi has joined #picolisp
ubLIX has quit [Ping timeout: 246 seconds]
<DKordic> ?me looks up Wiktionary.
<DKordic> I am not aware Lisp is intentionaly hidden, so it's not occult but esoteric in the 1. sense ior arcane.
<beneroth> T
<beneroth> but while some lisp dialect are esoteric languages, some lisps (especially pil) are not esoteric languages (double pun)
Regenaxer has joined #picolisp
alexshendi has quit [Ping timeout: 264 seconds]
<rick42> "Bullshit mode on" lol
<rick42> beneroth: \o
<beneroth> T
<beneroth> nice blog name :)
<rick42> apparently "what lisp is" is in the eye of the beholder when you read the threads on c.l.l. and now /r/lisp where the argument chains devolve into conclusions, such as, mccarthy didn't know much about lisp (when another pointed out that "mccarthy doesn't agree with you" and cited mccarthy himself). in this case, the challenged retorted with (essentially) "i claim myself to be the expert. QED." reminded me of the sce
<rick42> ne in Princess Bride where vizzini says "ever hear of plato, aristotle, einstein? ... morons!" :)
<beneroth> WTF
<beneroth> humans!
<beneroth> McCarthy didn't stutter, afaik
<beneroth> I still like this story (I posted it multiple times here already): https://news.ycombinator.com/item?id=1803627
<rick42> neat!
<rick42> although i don't agree with a subsequent poster: "Though, may I add that Python (or any other modern programming language) can manipulate its own code as data ..." if s/he said that in my hearing I would have coughed like we used to do in school, it's like a cough mixed in with an exclamation of "Bullshit!", rendered at the same time, as much as possible. (was that just an American thing or was that done in other co
<rick42> untries too. curious.)
<beneroth> *cough*
<beneroth> known in Europe too
<rick42> cool
<rick42> or whatever the equivalent of BS is in other languages lol
f8l has joined #picolisp
<rick42> it was "plato, aristotle, socrates". i stand corrected: https://www.youtube.com/watch?v=aprcqLMY2QY
<rick42> :)
<beneroth> I know it more usually just as a coughing, without any wording, but unlike real coughing. it's similar to "clearing one's throat" (to get attention/make others aware one is present or want to say something), but as coughing, in a ironic way.
<beneroth> ah yeah the movie is a classic :)
ubLIX has joined #picolisp
ubLIX has quit [Ping timeout: 248 seconds]