Re: [julia-users] delayed evaluation without a macro

2015-07-19 Thread Mark S

Thanks, Tamas.

I will look into this along the lines that you mention. When I tried 
previously to implement delayed evaluation using delaying and forcing 
procedures my sequence elements were still getting evaluated although I 
believe the delaying and forcing procedures were otherwise working in that 
delay postponed function evaluation by wrapping it in a procedure and a 
call to the forcing procedure could subsequently evaluate the delayed 
function. But I will have another look as I must have been mistaken. I just 
wasn't sure if there was something about how Julia evaluates that prevented 
a procedural approach to delayed evaluation (and hence the use of macros 
for lazy.jl etc.).


So there are three reasons actually I was curious about this.

First I am learning Julia and I was trying to get a sense of Julia's 
evaluation model sort of step by step.

Second (and relatedly) I am trying to get a better sense of the need and 
the utility of macros and meta-programming--what do they make possible that 
is otherwise not possible?  Also at the moment for the way that I am going 
to use Julia, clarity in the code is a top priority (over fanciness). So if 
I can write something that is easier to read (for a novice) then that is an 
approach that I prefer to one that is more sophisticated but also more 
obscure. One of the things I like about Julia is that generally it is quite 
easy to read.

Third I am interested in working with delayed evaluation and was trying to 
get a better sense of that also. I'd like to understand how the macro 
implementation is better than the procedural implementation.

You mention that there would be a lot of boilerplate code without macros . 
. . . It seemed to me that once you have delaying and forcing procedures 
there is not big difference in delayed evaluation compared to where it is 
implemented using macros. I am interested in better understanding your 
comment . . . .

Thanks,
Mark

On Friday, July 17, 2015 at 9:49:48 AM UTC-4, Tamas Papp wrote:

 Of course. Eg 

 delayed1 = function() 
   print(evaluating!\n) 42 
 end  force(f::Function) = f()  force(delayed1) 

 You just need the macros for the syntactic sugar, bookkeeping, 
 etc. 

 Any intermediate Scheme textbook provides a lot of examples on how 
 to do these things with closures.   

 I am curious why you want to do it without macros, though; you 
 just get a lot of boilerplate code. BTW, there aren't a lot of 
 macros in Lazy.jl either. 

 Best, 

 Tamas 

 On Fri, Jul 17 2015, Mark S mas...@gmail.com javascript: wrote: 

  Hello, 
  
  I am interested in the delayed evaluation implementations like 
  Lazy.jl  (one-more-minute) and LazySequences.jl (dcjones).  Both 
  of these use  Julia's macros facilities. 
  
  Is it possible to implement delayed evaluation without using 
  macros? 
  
  Thanks for any leads or good references on this. 
  
  Mark 



[julia-users] delayed evaluation without a macro

2015-07-17 Thread Mark S


Hello,

I am interested in the delayed evaluation implementations like Lazy.jl 
(one-more-minute) and LazySequences.jl (dcjones).  Both of these use 
Julia's macros facilities.

Is it possible to implement delayed evaluation without using macros?

Thanks for any leads or good references on this.

Mark


[julia-users] Re: I made my Christmas presents with Julia

2014-12-27 Thread Mark S
very nice
thanks for posting !
On Saturday, December 27, 2014 4:38:11 AM UTC-5, cormu...@mac.com wrote:

 I used Julia to make my Christmas presents this year. It's not very 
 impressive code (my code never is), but it works, and the end results were 
 well received.

 https://github.com/cormullion/spiral-moon-calendar.jl

 Happy New Year!