abbyrjones72
2019-2-15 12:33:22

I’m sure that I will hit a wall with lisp, but so far it is the most intuitive language I have come across. I’m not a smart person, I just study things intensely, but this just makes sense to me. I am reading Structure and Interpretation of Computer Programs right now and everything is making sense. Am I having a stroke?


mark.warren
2019-2-15 12:36:52

Hi Abby, I don’t think there is anything wrong. Lisp/Scheme are wonderful languages and I am sure you will enjoy every minute.


abbyrjones72
2019-2-15 12:38:34

Ty mwarren :slightly_smiling_face: It’s just frustrating after trying to learn all of the objects-oriented languages and then trying to care about them. maybe I’m home finally


mark.warren
2019-2-15 12:41:41

I certainly found it refreshing after doing Java most of my career.


abbyrjones72
2019-2-15 13:14:53

I know java the best out of the languages I have come across


diego
2019-2-15 13:24:20

@abbyrjones72 LISP has a level of elegance which appeals to many of us. Have fun!


diego
2019-2-15 13:24:33

XKCD has put it well: https://xkcd.com/297/


diego
2019-2-15 13:25:59

However, in practice (in my experience) many companies have trouble using it, particularly given the large prevalence of knowledge of other languages. See also https://xkcd.com/224/ :slightly_smiling_face:


daniel
2019-2-15 13:26:38

The Lisp Cycles one is probably my favourite XKCD.


abbyrjones72
2019-2-15 13:27:42

ty zzamboni…my background is a masters in health and life science analytics, and I saw some really sweet tools for statistical work with Racket. that’s what drew me in


diego
2019-2-15 13:30:16

Racket has a fantastic ecosystem. I only recently started learning it, but I’m enjoying it very much. I learned a bit of Clojure before. I was using Riemann (http://riemann.io) at work, which is what got me started in it. Also LISP, very elegant, also large ecosystem (thanks to the seamless Java integration), but a different “feel” altogether (maybe because of the Java integration)


daniel
2019-2-15 13:31:16

I kind of like where Lisp/Scheme/Racket is right now. Of course, I’d be thrilled if Racket suddenly took off. But as it stands, it’s sort of like a secret weapon, if you’ll pardon my reference. I’m planning to disrupt the blockchain smart contract language space where DSLs make so much sense.


abbyrjones72
2019-2-15 13:33:24

my ultimate goal is to write another computer language and compiler/interpreter. I want to understand how languages work.


daniel
2019-2-15 13:35:14

Then you’ve come to the right place. I’m new here as well but so far have had a great experience with the community. @mflatt was kind enough to agree to speak with the developers at my company about Racket and DSLs a few weeks back. That’s the kind of community Racket has.


abbyrjones72
2019-2-15 13:35:45

Thank you all so much for the warm welcome.


abbyrjones72
2019-2-15 13:52:26

If you don’t mind me asking, what is a DSL?


pocmatos
2019-2-15 13:55:12

Domain Specific Language.


abbyrjones72
2019-2-15 13:55:49

tyvm


diego
2019-2-15 14:06:44

Racket has explicit facilities for building DSLs, so it’s great for your idea of writing a new language. I am precisely at the moment halfway through @mflatt’s paper “Creating Languages in Racket” (https://queue.acm.org/detail.cfm?id=2068896), which is an easy read but gives a very good progression of how you can build more and more sophisticated/specialized languages, with concrete examples. Also very good is @mbutterick’s “Beautiful Racket” (https://beautifulracket.com).


abbyrjones72
2019-2-15 14:17:09

Thanks for this. I will start reading this today. I want to finish the first chapter in SICL


greg
2019-2-15 17:27:31

I’m curious to know what people think about this: call-with-x is a good name for functions that take a procedure. with-x is a good name for syntax that sugar away the lambda of a call-with-x. This is a good naming convention. (Don’t follow the bad example of the with-{input output}-from-file functions. :smile:). To avoid a huge bike-shedding thread, I’ll add a couple reaction buttons you can just click (unless you have any commentary).


abbyrjones72
2019-2-15 17:58:22

I wish I knew enough to provide a reaction :joy:


mark.warren
2019-2-15 20:09:50

@abbyrjones72 I agree, I cannot possibly comment.


abbyrjones72
2019-2-15 20:25:10

@mark.warren :slightly_smiling_face:


notjack
2019-2-15 20:42:09

I think I even put this on the wiki page for Racket 2 as an inconsistency in the stdlib we should fix up


xarxziux
2019-2-15 21:46:04

@abbyrjones72 That’s not generally how opinions work :open_mouth:


notjack
2019-2-16 00:22:27

hmmm. a call-with-handlers that took a dict of predicates and handler functions could be useful. not sure if there’s a good way to remove the lambdas from with-handlers though.


greg
2019-2-16 01:52:40

@mbutterick Point. I imagine that example is: Say you wrote a simple with-exception-handler syntax variant of call-with-exception-handler. I think you’d decide something like with-handlers is what you’d actually find more useful?


notjack
2019-2-16 02:38:11

how does using #:escape work with examples? I tried using it, but just got document building errors: @(examples #:eval (make-evaluator) #:once #:escape UNSYNTAX (define rec (UNSYNTAX example-record)) (record-ref rec '#:name) (record-ref rec '#:fur-color)) The error I get from raco setup is: raco setup: error: during building docs for <pkgs>/rebellion/main.scrbl raco setup: examples: exception raised in example raco setup: error: "UNSYNTAX: undefined;\n cannot reference an identifier before its definition\n in module: top-level"


alexknauth
2019-2-16 02:45:44

I’ve only been able to use escapes for examples within the show-datum of an eval:alts


notjack
2019-2-16 02:59:08

maybe the escape form is only meant to work with scribble parts / elements and there isn’t any way to use an escape with the code fragments being sent to the evaluator


notjack
2019-2-16 03:53:02

huh, with-syntax is a weird name now that you mention it