Re: [racket-users] Re: Alternative UI toolkits

2019-08-07 Thread Stephen De Gabrielle
Thanks Neil. Mathematica uses QT! Noice.

For my own reference
- https://github.com/servo/webrender/ 'experimental render backend for Servo
, but it can also be used as such in a standalone
application.'
-
https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#using-extern-functions-to-call-external-code
- calling Rust functions from Racket and vice versa.


Racket<=>rust interoperability seems interesting.

On Wed, Aug 7, 2019 at 4:36 PM Neil Van Dyke  wrote:

> Since I mentioned the Qt GUI toolkit family (which you might also know
> as a foundation of KDE)...
>
> * if anyone is looking at that for Racket for some reason, there's a new
> "technical vision" statement for the next major version:
>
> https://blog.qt.io/blog/2019/08/07/technical-vision-qt-6/
>
> I'm happy with Racket's current support for GTK2, GTK3, and other native
> toolkit backends, and so see no need for all the work to add a Qt
> backend, but it's nice to have backup plans in mind for unusual situations.
>
> * Also, even if you have no interest in Qt right now, that blog post is
> a nice writeup on ongoing vision for an important set of software that's
> been evolving for a long time and is pretty popular.  So maybe worth a
> skim, for a feel of how they're thinking and communicating about that
> kind of thing.
>
> --
> 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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-users/528a6a04-9fbc-a64b-4bda-b2fce4d533fe%40neilvandyke.org
> .
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/CAGHj7-KgfYZBQGxkxam1%3DqjkHQrsAZinEG6EWO1CXpCQjUCbnw%40mail.gmail.com.


[racket-users] Honu thoughts and clarification

2019-08-07 Thread Christopher Lemmer Webber
Today I read the 2012 Honu paper:

  http://www.cs.utah.edu/~rafkind/papers/honu-2012.pdf

Some impressions and a question:

 - Well it's pretty obvious where I stand on my preference for lisp
   syntax.  But!  I'll say the Honu paper is beautifully written and is
   maybe the nicest non-s-expression approach to macros to date.  (Not
   as nice or (heh) expressive as if you use s-expressions, but it's
   great to have this contribution for when you can't.)

 - I was confused a bit by the $ foo ... $ delimiting.  Why $ for both
   the start and end?  I would have thought to do `$( foo ... $)` or
   `^ foo ... $`  or something.  Then it hit me: is this the same reason
   we can't do two ellipses at the same level in pattern matching?
   That's my guess, would love confirmation/denial.

 - The design overall seems to make a lot of sense to me, except for one
   big red flag for me: infix prioritization levels.  Yikes!  Is this a
   good idea?  So many hours wasted trying to make sense of arbitrary
   ordering properties from standard algebraic notations, and now we're
   adding the ability for users to add *new* complications?  It seems to
   me that SRFI 105 had the right idea: a "universal" infix notation
   without ambiguity: {x + {y * z}}

   My friend Lee Spector is more bold about it than I am:

 On the first day of my presidency I will sign an executive order
 banning infix notation, thereby preventing the senseless
 squandering of so many of our precious mathematical and
 computational resources.
  -- https://twitter.com/leespector/status/1159155362957877249

Overall though, I want to say that even though I remain cautiously
skeptical about moving to a new surface syntax (but am more satisfied by
what I think the process for exploring it), it's hard to imagine a
better design for a non-s-expression syntax than what Honu has done,
assuming it isn't an "invisible parentheses" approach (like
Sweet-Expressions or Wisp).  Good stuff, thanks to those who worked on
it.

 - Chris

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/87blx0q1tq.fsf%40dustycloud.org.


Re: [racket-users] [racket users] module question

2019-08-07 Thread Kevin Forchione


> On Aug 7, 2019, at 8:55 AM, Kevin Forchione  wrote:
> 
> 
> 
>> On Aug 6, 2019, at 4:06 PM, Sorawee Porncharoenwase > > wrote:
>> 
>> (module B racket
>>   (require (submod ".." A))
>>   (printf "X=~a~%" X))
> 
> Why doesn’t printf display anything ? 

Oh, wait. modules are “lazy” until they’re required. Something like that. I 
think I’m beginning to understand. :) 

#lang racket


(module A racket
  (provide X)
  (define X 5)
  (printf "A.X=~a~%" X))

(module B racket
  (require (submod ".." A))
  (printf "B.X=~a~%" X))


(require ‘B)

Kevin

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/D38B2472-D673-49BB-AF89-1B9FF9A3EFC1%40gmail.com.


Re: [racket-users] [racket users] module question

2019-08-07 Thread Kevin Forchione


> On Aug 6, 2019, at 4:06 PM, Sorawee Porncharoenwase  
> wrote:
> 
> (module B racket
>   (require (submod ".." A))
>   (printf "X=~a~%" X))

Why doesn’t printf display anything ? 

Kevin 

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/D0788D42-32EE-4898-B1BB-8795628B06C8%40gmail.com.


Re: [racket-users] Re: Alternative UI toolkits

2019-08-07 Thread Neil Van Dyke
Since I mentioned the Qt GUI toolkit family (which you might also know 
as a foundation of KDE)...


* if anyone is looking at that for Racket for some reason, there's a new 
"technical vision" statement for the next major version:


https://blog.qt.io/blog/2019/08/07/technical-vision-qt-6/

I'm happy with Racket's current support for GTK2, GTK3, and other native 
toolkit backends, and so see no need for all the work to add a Qt 
backend, but it's nice to have backup plans in mind for unusual situations.


* Also, even if you have no interest in Qt right now, that blog post is 
a nice writeup on ongoing vision for an important set of software that's 
been evolving for a long time and is pretty popular.  So maybe worth a 
skim, for a feel of how they're thinking and communicating about that 
kind of thing.


--
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/528a6a04-9fbc-a64b-4bda-b2fce4d533fe%40neilvandyke.org.


[racket-users] Re: [racket users] module question

2019-08-07 Thread Luis Sanjuán
As Sorawee has said. To expand a bit.

First,

#lang modname

is a shorthand for:

(module a-name modname)

where a-name derives from the filename.

So, modules within are actually submodules.

On the other hand, the .. in the submod is a relative module path. The 
symbol is borrowed, I believe, from Unix.
where '.' means the current path, and '..' means the parent of the current 
path. Here,
'..' points to the enclosing module.

On Wednesday, August 7, 2019 at 12:58:22 AM UTC+2, lysseus wrote:
>
> Is there a way to define 2 modules within a file and reference them or is 
> a file limited to 1 module only (but may have multiple submodules)? 
>
> Here’s a small sample: 
>
> #lang racket 
>
> (module A racket 
> ˘  (provide X) 
>   (define X 'foo)) 
>
> (module B racket 
>   (require 'A) 
>   (printf "X=~a~%" X)) 
>
> Apparently, as I understand it, I’m already nesting modules within the 
> #lang racket. But I’m not sure how to require A from within B in this 
> situation. 
>
> Kevin

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/785bded4-2345-42ac-88a2-ef5077c289bc%40googlegroups.com.