POV-Ray : Newsgroups : povray.general : Issue with function parameters : Re: Issue with function parameters Server Time
3 Aug 2024 18:16:56 EDT (-0400)
  Re: Issue with function parameters  
From: Thorsten Froehlich
Date: 15 Feb 2004 06:07:30
Message: <402f52f2$1@news.povray.org>
In article <cjameshuff-618DF4.19175614022004@news.povray.org> , Christopher
James Huff <cja### [at] earthlinknet>  wrote:

> Would it necessarily do so? I don't see how it could be a problem for a
> parameter name to hide a parse-time variable name.

You have to keep the difference between functions and macros in mind.  Just
imagine what would happen if you would be doing this, in particular if you
also consider #undef.  A mess is the result, and while you can perhaps clear
it up in the simple example below and define rules, those will quickly break
with a more complex example.  You really don't want it, because then which
scope applies were, in particular in macros that just generate functions
will no longer be clear.

    Thorsten

#macro minsert1()
 #undef a
 a
#end

#macro mfoo1(a)
 minsert1()
#end

#macro minsert2()
 a
#end

#macro mfoo2(a)
 minsert2()
#end

#declare fn1 = function(a) { mfoo1(10) }
#declare fn2 = function(a) { mfoo2(10) }
#declare fn3 = function(a) { minsert1() }
#declare fn4 = function(a) { minsert2() }

#macro m1(a)
 mfoo1(10)
#end

#macro m2(a)
 mfoo2(10)
#end

#macro m3(a)
 minsert1()
#end

#macro m4(a)
 minsert2()
#end

#debug str(fn1(1), 0, 0)
#debug " "
#debug str(fn2(1), 0, 0)
#debug " "
#debug str(fn3(1), 0, 0)
#debug " "
#debug str(fn4(1), 0, 0)
#debug "\n"

#debug str(m1(1), 0, 0)
#debug " "
#debug str(m2(1), 0, 0)
#debug " "
#debug str(m3(1), 0, 0)
#debug " "
#debug str(m4(1), 0, 0)
#debug "\n"


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.