new language; Julia

Discussion of other Lisp dialects (Arc, Clojure, AutoLisp, XLISP, etc.)

new language; Julia

Postby Jasper » Fri Mar 09, 2012 6:29 am

Searched for the word in the forum, did not find it. So i thought i'd post about it. This was their 'introductionary blog post, you may have seen it from other places.

Basically Julia is a lisp, if you look at metaprogramming for a description. Basically, code afaics consists of Expr objects. It takes a little getting used to, but it can basically do arbitrary stuff.(And arbitrarilly bad too as we know, but competence is up to the developer.) For illustration, below a macro:
Code: Select all
function destructuring_bind_fun(args, array, body, n)
  if length(args) == 0 #No variables to fill, done.
    return body
  else if isa(args[1], Symbol)
    return quote
      $(args[1]) = ($array)[$n]
      $(destructuring_bind_fun(args[2:],array, body, n+1))
    end
  else
    a = gensym()
    return quote
      $a = ($array)[$n]
      $(destructuring_bind_fun(args[1].args,a,
         quote $(destructuring_bind_fun(args[2:],array, body, n+1)) end,1))
    end
  end
end
# Due to use of Expr and different styles, `destructuring_bind` wont be as use
# full in Julia as in the lisps. (Maybe a `destructure_expr` might be.)
macro destructuring_bind(args, array, body)
  assert(args.head == :cell1d, # Poor error message.
         "I am a restrictive bitch now so i can be nicer later, promise.")
  return destructuring_bind_fun(args.args, array, body, 1)
end
# Users need to put `@` in front, i think users need to be more first-class.
@destructuring_bind{a,b,{c,d},q} {1,2,{3,4},5} {a,b,c,d,q} #-> 1,2,3,4,5

What do you guys think? I think this is pretty promising.(but early) It does seem to have quirks, i am gathering them as i use it a bit. I also made a wiki page, and trying to get something functionally similar to destructuring-regex in.(edit: i should probably improve that package) They seem to have made little inroads into macros, but of course those aren't always best, and using them a lot hides stuff from the compiler. For the devs right now, at later point it can be copied and altered to make switching from CL easier.(Though it is easy already.)
Jasper
 
Posts: 209
Joined: Fri Oct 10, 2008 8:22 am
Location: Eindhoven, The Netherlands

Re: new language; Julia

Postby findinglisp » Sat Mar 10, 2012 2:37 pm

I like. I have thought about creating something similar for years. It will be interesting to see what the uptake is like.
Cheers, Dave
Slowly but surely the world is finding Lisp. http://www.findinglisp.com/blog/
findinglisp
 
Posts: 440
Joined: Sat Jun 28, 2008 7:49 am
Location: Austin, TX


Return to Other Dialects

Who is online

Users browsing this forum: Bing [Bot] and 1 guest

cron