Re: macros (was: Seeking computer-programming job (Sunnyvale, CA))
On 15 maio, 10:47, r...@zedat.fu-berlin.de (Stefan Ram) wrote:
p...@informatimago.com (Pascal J. Bourguignon) writes:
Well at that point I can only say that, well over here we're not (all)
raving maniacs, that we have useful tools that help solve or obviate a
lot of problems found with other programming languages, and point to
that tutorial:http://www.lisperati.com/casting.html
Assume for a moment I had advanced macro capabilities in Java.
I'd write:
public static String getMultiValue( Object valueObject )
{ String result = null;
if( valueObject == null )result = null;
else if( StringValue stringValue =? valueObject )
result = getStringValue( stringValue );
else if( SprayValue sprayValue =? valueObject )
result = getSetValue( setValue );
return result; }
The macro here is marked by the occurence of =BB=?=AB, which is
not a regular Java operator, but part of my hypothetical macro
call pattern.
The problem here is readability:
Can others know, what =BB=?=AB means in my macro package?
Can they know how to immediately find its documentation?
May I say that your macro is very lame and useless? Here is a good
example of what a good macro can do. CL doesn't have a way to
serialize functions to a file. This library (I wrote it)
http://github.com/gugamilare/storable-functions/
makes this possible. It does not rely on any internal representation
of the functions by some implementation - this would make the code
unportable - but it provides a macro that retrieves the function's
body to be stored into a file and then restored back again. It is as
simple as this: instead of writing (lambda (...) ...) you write (st
(lambda (...) ...).
In Java I am pretty sure this isn't conceivable because
1) Java does not have dynamically created functions (or am I wrong?)
2) Java Code is not an easy manipulable data
3) Java doesn't have macros.
As you can see, macros not only provide a way to make your
applications shorter or more readable, but they also make it possible
to do somethings that otherwise couldn't be done.