this post was submitted on 02 Aug 2023
21 points (76.9% liked)
Open Source
31089 readers
670 users here now
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Not big on Forth but I wouldn't see how any of that would be difficult on some Lisps depending on levels the macro system works on (e.g. Racket you can easily get into levels of code tokenization). I guess, is that type of manipulation typical on Forth? The whole reason one writes in Lisp is for "Code is Data" and extreme meta programming. Things you wouldn't think would be used that often but Lisp programmers use it a lot.
In Forth, you can do things like, say, redefine the number 0 to be computed as a function, and all code that uses the number 0 will instantly change its behaviour at runtime. Why would you do that? I've never found a legitimate use for it, which is why I hate Forth (and Lisp, for similar reasons). I like static analysis and I like it when the language prevents me from doing something silly, but I can understand why some people like the elegance and power-rush from one of the god-like languages like Lisp.
Yeah I've seen some of that language manipulation. I guess my question is, does this happen in Forth regularly or not?
In JS you can manipulate the prototype for a data type but unless you're making some sort of library for a new type of framework most developers never do that type of stuff. In Ruby duck typing is the idiomatic way to solve many problems. In Lisp the use of macros is fairly common that a good majority of larger projects use. Not sure if that type of lower level manipulation is something everyone does in Forth or just something possible.