Re: [racket-users] Re: Programming paradigms supported by Racket (according to wikipedia)

2017-02-12 Thread Matthias Felleisen

> On Feb 12, 2017, at 4:51 PM, Jack Firth  wrote:
> 
> Somewhat reductionally, anyone can write a Racket library that implements a 
> `#lang` with the semantics of any language on that list, so Racket therefore 
> supports all paradigms. This doesn't really say anything useful.


If you want to use this form of a claim, you need to add a constraint: 

subject to interoperability with existing Racket libraries without 
recompiling them. 

Google expressive power of programming languages. It is radically different 
from Turing’s concept of universality, and I think more useful to developers. 
If you accept this restriction on the mapping space between languages, you will 
realize that even Racket can’t express it all. 

— Matthias

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Programming paradigms supported by Racket (according to wikipedia)

2017-02-12 Thread Matthias Felleisen

> On Feb 12, 2017, at 4:55 PM, Greg Trzeciak  wrote:
> 
> On Sunday, February 12, 2017 at 10:35:45 PM UTC+1, Matthias Felleisen wrote:
>> Thanks. I assume you have seen my old web page with Don Q as my image :-) 
> 
> Believe it or not... I haven't which makes the analogy even more fitting =)
> 
> To make sure I didn't simply have it in my subconsciousness I even checked 
> wayback machine:
> https://web.archive.org/web/20100823072635/http://www.ccs.neu.edu/home/matthias/
> 
> That was the last time you used it - at that time I didn't even know of 
> existence of Racket!


Yes :-) I am now convinced some of my work can make it … (well, I actually 
wanted to move to a different picture and did not find the right-sized Don Q 
picture). 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Programming paradigms supported by Racket (according to wikipedia)

2017-02-12 Thread Greg Trzeciak
On Sunday, February 12, 2017 at 10:35:45 PM UTC+1, Matthias Felleisen wrote:
> Thanks. I assume you have seen my old web page with Don Q as my image :-) 

Believe it or not... I haven't which makes the analogy even more fitting =)

To make sure I didn't simply have it in my subconsciousness I even checked 
wayback machine:
https://web.archive.org/web/20100823072635/http://www.ccs.neu.edu/home/matthias/

That was the last time you used it - at that time I didn't even know of 
existence of Racket!



-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Programming paradigms supported by Racket (according to wikipedia)

2017-02-12 Thread Jack Firth
Somewhat reductionally, anyone can write a Racket library that implements a 
`#lang` with the semantics of any language on that list, so Racket therefore 
supports all paradigms. This doesn't really say anything useful.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Programming paradigms supported by Racket (according to wikipedia)

2017-02-12 Thread Matthias Felleisen

> On Feb 12, 2017, at 4:32 PM, Greg Trzeciak  wrote:
> 
> On Saturday, February 11, 2017 at 3:30:42 PM UTC+1, Matthias Felleisen wrote:
>> Racket should be removed from the list. 
>> 
>> 
>>  
>> http://cs.brown.edu/~sk/Publications/Papers/Published/sk-teach-pl-post-linnaean/
>> 
>>  Programming language ‘‘paradigms’’ are a moribund and tedious legacy of a 
>> bygone age. 
>>  Modern language designers pay them no respect, so why do our courses 
>> slavishly adhere 
>>  to them? This paper argues that we should abandon this method of teaching 
>> languages, 
>>  offers an alternative, reconciles an important split in programming 
>> language education, 
>>  and describes a textbook that explores these matters.
>>  
>>  (Shriram’s dissertation on linguistic reuse inspired Racket’s modular 
>> system of languages.)
>> 
>> 
>> If you have time to edit the wikipage, please do so. Thanks — Matthias
> 
> As a person not invested in PL research and teaching let me state a layman's 
> view.
> Whether we like it or not open access to wikipedia makes it an excellent tool 
> for promotion - and that's how I see all the "supported paradigms" - just a 
> marketing gimmick indicating language versatility. 
> Thank you for the article linked - the arguments make perfect sense, but I am 
> a bit doubtful if the battle can be won.
> Saying this, I like idealist (most of the time anyway) so if there will be no 
> serious objections in the next few days - I will be your Sancho Panza and 
> remove it as requested ;)
> 
> Greg


Thanks. I assume you have seen my old web page with Don Q as my image :-) 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Why doesn't this maxval function correctly return the maximum value in the list

2017-02-12 Thread Matthias Felleisen

> On Feb 12, 2017, at 3:00 PM, Angus  wrote:
> 
> I am a beginner Racket developer by the way.
> 
> Here is my maxval function which is supposed to take a list and return the 
> largest integer in the list.
> 
> (define (maxval lst)
>   (define (aux lst max)
> (cond [(null? lst)  max]
>   [(car lst) > max (aux (cdr lst) (car lst))]
>   [#t (aux (cdr lst) max)]))
>   (aux lst 0))
> 
> 
> Using the function always returns the last value in the list
> 
>> (maxval (list 1 2 3 5 6 1))
> 1
> 
> The code looks correct to me, but I must be missing something.  What have I 
> done wrong?


Your code is 100% correct, conceptually. Sadly, it’s suffering from a mistake 
that I saw many many times in the 90s and before. And that’s precisely why we 
get beginners started on Beginning Student Language in DrRacket instead of 
plain Racket. Try it out for your next few exercises or even this one, to see 
whether the error message would have helped. 

— Matthias

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Programming paradigms supported by Racket (according to wikipedia)

2017-02-12 Thread Greg Trzeciak
On Saturday, February 11, 2017 at 3:30:42 PM UTC+1, Matthias Felleisen wrote:
> Racket should be removed from the list. 
> 
> 
>  
> http://cs.brown.edu/~sk/Publications/Papers/Published/sk-teach-pl-post-linnaean/
> 
>  Programming language ‘‘paradigms’’ are a moribund and tedious legacy of a 
> bygone age. 
>  Modern language designers pay them no respect, so why do our courses 
> slavishly adhere 
>  to them? This paper argues that we should abandon this method of teaching 
> languages, 
>  offers an alternative, reconciles an important split in programming language 
> education, 
>  and describes a textbook that explores these matters.
>  
>  (Shriram’s dissertation on linguistic reuse inspired Racket’s modular system 
> of languages.)
> 
> 
> If you have time to edit the wikipage, please do so. Thanks — Matthias

As a person not invested in PL research and teaching let me state a layman's 
view.
Whether we like it or not open access to wikipedia makes it an excellent tool 
for promotion - and that's how I see all the "supported paradigms" - just a 
marketing gimmick indicating language versatility. 
Thank you for the article linked - the arguments make perfect sense, but I am a 
bit doubtful if the battle can be won.
Saying this, I like idealist (most of the time anyway) so if there will be no 
serious objections in the next few days - I will be your Sancho Panza and 
remove it as requested ;)

Greg


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Why doesn't this maxval function correctly return the maximum value in the list

2017-02-12 Thread Jon Zeppieri
On Sun, Feb 12, 2017 at 3:00 PM, Angus  wrote:
> I am a beginner Racket developer by the way.
>
> Here is my maxval function which is supposed to take a list and return the 
> largest integer in the list.
>
>  (define (maxval lst)
>(define (aux lst max)
>  (cond [(null? lst)  max]
>[(car lst) > max (aux (cdr lst) (car lst))]

Right here ^^^ you're trying to use `>` as an infix operator, but
that's not how Racket syntax works. What you want is:

 [(> (car lst) max) <...>]

The way you wrote it, it means: "If the first element of `lst` isn't
#f, then evaluate `>` for side-effects (which does nothing), then
evaluate `max` for side-effects (which does nothing), then return the
value of `(aux (cdr lst) (car lst))`."


>[#t (aux (cdr lst) max)]))

Preferred Racket style is to use `else` here instead of `#t`.

- Jon

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Why doesn't this maxval function correctly return the maximum value in the list

2017-02-12 Thread Angus
I am a beginner Racket developer by the way.

Here is my maxval function which is supposed to take a list and return the 
largest integer in the list.

 (define (maxval lst)
   (define (aux lst max)
 (cond [(null? lst)  max]
   [(car lst) > max (aux (cdr lst) (car lst))]
   [#t (aux (cdr lst) max)]))
   (aux lst 0))


Using the function always returns the last value in the list

> (maxval (list 1 2 3 5 6 1))
1

The code looks correct to me, but I must be missing something.  What have I 
done wrong?

Angus

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] [racket][gui] maybe different behaviors of text% between Windows and macOS

2017-02-12 Thread WarGrey Gyoudmon Ju
Hello, the original problem is reported here[
https://github.com/racket/racket/issues/1573]
My solution works well in macOS, but in Windows, it only "partially" works:

If there is no newline (including the one produced by *auto-wrap*) in the
texts, it works, or only the last line is rendered well, all head lines are
not combined.

So, are there any magic things relates to windows or newlines?
Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.