5 ms·
The Excellent Schemer
- smitty1e 4y agoOn another plane, John McCarthy smiles.
- deleted 4y ago[deleted]
- belmarca 4y agoThe current standard for Scheme is referred to as R6RS R7RS small has been out since 2013. But yeah... "it's complicated". We did an experiment a few months ago with compiling Gambit to JS and then serving it as an Office extension, using our JS FFI to interface with the Office JS library. Worked out of the box, but definitely some performance cost. Curious about performance on .NET. BTW if Bob reads this, happy to hear you talk about this at the upcoming Scheme Workshop :) I guess this isn't available on Excel on the web? https://icfp22.sigplan.org/home/scheme-2022 https://icfp22.sigplan.org/home/scheme-2022 for those interested.
- bjoli 4y agoThe scheme in question is IronScheme. Bob wrote the office integration. Leppie wrote the rest.
- belmarca 4y agoDo you have any idea about performance? I'll just ask him in a few weeks but I'm really curious. I actually never used the .NET framework before.
- bjoli 4y agoNot stellar compared to something like guile and straight up slow as molasses compared to chez. But I don't think that is the goal. It is probably on par with Python for many things. https://ecraven.github.io/r7rs-benchmarks/ https://ecraven.github.io/r7rs-benchmarks/
- belmarca 4y agoThanks. I'm interested in the interface cost, marshalling of data to and from .NET, if he had any tricks to pull to get it working!
- galaxyLogic 4y agoThis is awesome. I have two comments 1. Does this mean we don't need static type-checking? 2. Instead of (lambda (x y) (let ((xs (* x x)) (ys (* y y))) (sqrt (+ xs ys)))) why don't they (the article) format it like: (lambda (x y) (let ( (xs (* x x)) (ys (* y y)) ) (sqrt (+ xs ys)) ) ) The rule could be: Never have more than TWO consecutive closing ')' on the same line. If you're trying to prove the benefits of a syntax, the reader should not need to spend energy on trying to understand which closing ')' correspond to which opening '('.
- hedgehog0 4y ago
- xdavidliu 4y agothe overwhelming convention in Lisp (both Scheme and Common Lisp) seems to be to never have a closing paren by itself. I'm not sure why, but I also prefer it that way. Most editors like emacs and modern IDEs also highlight matching parens, so usually this is not really an issue.
- stew-j 4y ago1. Values (objects) in Scheme are tagged, carrying the type with them. And no, a variable, the identifier that names a location which stores a value isn't statically typed. From R6RS: https://docs.racket-lang.org/r6rs/r6rs-std/r6rs-Z-H-4.html#node_sec_1.1 https://docs.racket-lang.org/r6rs/r6rs-std/r6rs-Z-H-4.html#n... > Scheme has latent as opposed to manifest types. Types are associated with objects (also called values) rather than with variables. (Some authors refer to languages with latent types as untyped, weakly typed or dynamically typed languages.) Other languages with latent types are Python, Ruby, Smalltalk, and other dialects of Lisp. Languages with manifest types (sometimes referred to as strongly typed or statically typed languages) include Algol 60, C, C#, Java, Haskell, and ML. The Scheme standards are very concise and readable. 2. Sometimes we Schemers will leave an orphan paren, like if we want to leave a place temporarily for new code. The primary benefit of all on the same line, IMO, is it is more compact vertically and most Lisp programmers rely on paren matching anyway. If you program in Scheme long enough, you can just "see" the level of nesting by the apparent contour of parenthesis. (If you don't understand this, that's probably a good thing.)
- eggy 4y agoHow do you buy it? I just see a lot hype, but no link to purchase it. I am still playing around with Corman Lisp! I'd love to see how I can add Scheme to my Excel sheets, and a REPL to boot!
- neilv 4y agoSeems to be this non-Microsoft product: https://apexdatasolutions.com/home2/acce%CE%BBerate/ https://apexdatasolutions.com/home2/acce%CE%BBerate/
- deusum 4y agoGood artists copy, great ones steal... Microsoft has always been as brazen as it is effective at this sort of thing.
- bjoli 4y agoSo, someone wrote an integration of the lovely IronScheme (open source) in office and wants $99/yr? Wowza. Edit: Check out iron scheme here: https://github.com/IronScheme/IronScheme https://github.com/IronScheme/IronScheme
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- magpi3 4y agoIf they are willing to provide good support, then the $99 is well worth it.
- mark_l_watson 4y agoThanks that looks really good. I don't use .Net platform, so I am not a potential user, but for Lispers using the .Net platform, this would be nice. I use Common Lisp a lot in my work and my own research programming, and language interop is always a nuisance. With IronScheme, it looks like interop with all .Net languages is easy.
- stew-j 4y agoIt looks like this Scheme might eventually have good interop with Common Lisp: https://github.com/lisp-mirror/airship-scheme https://github.com/lisp-mirror/airship-scheme https://news.ycombinator.com/item?id=13868549 https://news.ycombinator.com/item?id=13868549 As for using it: > This section is currently incomplete because the programming language is not functional at the moment.