sorawee
2020-11-18 08:07:05

kellysmith12.21
2020-11-18 08:39:11

That’s a good idea.


gknauth
2020-11-18 14:33:25

Small Happy DrRacket story. I lived with a family many decades ago. Three sisters survive; their parents are gone. Unfortunately, the sisters are not very good with math, or they sort of are, but not with any precision. They called me for help trying to settle an estate. Some of the sisters were owed money for expenses, one owed money to the estate. A sister was willed a special specific amount. Then there was another bank account to liquidate in uneven percentages. All this had to be figured out by the next morning when they went to the bank, because the sisters were flying off to different destinations. It ended up being quite simple, but the way it was explained to me at first, it was incredibly complicated. So I shared my screen, brought up DrRacket, gave various amounts names, and set up the calculations. As I explained my reasoning, which I thought was simpler than theirs, they did not initially believe it could be that simple. I went from complicated names for things to simpler names as the picture became clearer to me, and to them. DrRacket’s little arrows pointing to where things are used were immensely helpful. When I renamed something, they could see exactly how that affected everything else. In the end they were quite happy, I gave them the program and the output and they took that to the bank.


kellysmith12.21
2020-11-18 16:00:59

If my module provides a syntax binding that conflicts with one from scribble/manual, how can I specify to Scribble to use my module’s binding in defform?


kellysmith12.21
2020-11-18 16:18:25

I figured it out: use declare-exporting.


steveh2009
2020-11-18 16:21:02

I asked this question over a year ago here and got the correct answer but I lost it, thanks again for your patience: What is the raco package command to migrate installed library packages from an earlier version of Racket to the latest one I just installed (7.9). Thanks!


sorawee
2020-11-18 16:23:28

raco pkg migrate


sorawee
2020-11-18 16:24:29

Alternatively, you can use the GUI interface in DrRacket


kellysmith12.21
2020-11-18 16:27:53

Another Scribble question: say that there is a grammar fragment that appears frequently in some macros, is there a way to define its grammar in one place, then link to it in the grammars of the macros?


steveh2009
2020-11-18 16:31:12

It worked. Just had to add the <from> version number onto your raco command. Thanks again.


sorawee
2020-11-18 16:31:20

You can do what match does (the pat fragment in particular) (https://docs.racket-lang.org/reference/match.html).


sorawee
2020-11-18 16:32:47

Alternatively, you can document the fragment in one form, and reference to the fragment in another form. This is how various forms of syntax-parse shares the parse-option.


kellysmith12.21
2020-11-18 16:33:41

I think I’ll try the second option, because I want to be able to hyperlink to the fragment definitions.


sorawee
2020-11-18 16:33:56

Same for how case-lambda and #%plain-lambda share formals



sorawee
2020-11-18 16:35:19

Oh, this referencing doesn’t create a hyperlink though.


sorawee
2020-11-18 16:35:34

I wish it does, but currently it doesn’t.


badkins
2020-11-18 17:06:45

New slogan inspired by @gknauth’s story above. “Racket, you can take it to the bank!”


gknauth
2020-11-18 17:20:57

They literally did. pay-1: 226963.66 pay-2: 167771.17 pay-3: 208715.17 sum: 603450.00


gknauth
2020-11-18 17:25:26

Of course this could have been done with any computer language. But when I was adding a bunch of things together, this syntax helped: (+ n1 n2 n3 ... nn) and then in DrRacket, the arrows were great during the renaming phase, agreeing to use names for things that everyone understood. I developed the code with my names, then I used the arrows & renaming to pick names that were meaningful to them, and the arrows helped them believe that the right amounts were being used in the right places. I big source of the errors they had been seeing turned out to be from them mistyping the same values into a calculator and (suprise!) getting results that kept changing. I convinced them to write each number down just once and give things names. Pretty basic stuff, except they were dealing with their mother’s estate, and that is never an easy task.


phanthero
2020-11-18 17:50:58

What are these arrows you are referring to? When do they appear in Dr. Racket? I’ve switched over to Emacs so I haven’t used Dr. Racket in a while, but I don’t remember arrows … Cool story though!


kellysmith12.21
2020-11-18 17:54:39

Is there a way to build a “blue box” without using a standard definition form?


gknauth
2020-11-18 18:22:18

kellysmith12.21
2020-11-18 18:36:03

I was able to get the documentation to work more-or-less how I hoped it would.


laurent.orseau
2020-11-18 18:38:37

Should be named DrArrows!


laurent.orseau
2020-11-18 19:25:55

@phanthero If you haven’t checked “Right-click, Rename” feature of DrRacket, I urge you to give it a try, it’s awesome


filip626
2020-11-18 20:07:02

@filip626 has joined the channel


phanthero
2020-11-18 23:13:03

Alright I guess I’ll install DrRacket after getting rid of it for so long XD


phanthero
2020-11-19 00:09:53

I was wondering why Racket was created. When I try to explain it to others, I sometimes say it was made to teach fundamental functional programming to those new to coding. But sometimes I will also say it was a language made to create languages (DSLs, etc), a language-oriented language. Now, obviously, creating languages is not a concept we might teach those who have just started programming, so I was wondering what the founders of the language were thinking when they designed Racket.

Was it initially a teaching language that eventually evolved into a more “language-oriented” language?


camoy
2020-11-19 00:13:28

You might be interested in this blogpost that talks about some of the origin story: https://blog.racket-lang.org/2020/05/racket-is-25.html\|https://blog.racket-lang.org/2020/05/racket-is-25.html


joel
2020-11-19 00:29:01

This needs to be a blog post


wanpeebaw
2020-11-19 00:43:09

Modern IDE editor has similar feature called “highlight occurrences”. But typically only highlights without showing arrows.


phanthero
2020-11-19 00:45:33

Can Emacs recreate Dr. Racket’s highlight occurences, refactor and other things Dr. Racket can do? I haven’t read the documentation for Racket Mode or Emacs that extensively, but usually the question is just a matter of finding the right option lol


wanpeebaw
2020-11-19 00:48:19

It’s like spreadsheet. A free form spreadsheet!


wanpeebaw
2020-11-19 00:52:26

It seems that several goals are mixed. This caused some some confusion. I think it’s better to divide different goals into different plugins.


phanthero
2020-11-19 01:15:43

Hmm, so from the blog, it seems that the initial goal was to make functional programming accessible to everyone since it wasn’t as widely used. I wonder when the following became the slogan for “Racket” instead of something more teaching oriented then. So is it true that the “language orientation” was an evolution rather than the starting goal?


sorawee
2020-11-19 04:31:59

Is it possible to make parameterize faster? My program has no thread at all. Would getting rid of thread cell support help with performance?