On Wed, 1 Nov 2006, Frank Barknecht wrote:
Hans-Christoph Steiner hat gesagt: // Hans-Christoph Steiner wrote:
Then to make iemlib/split.pd_darwin work as [split], one would use [declare iemlib] or [import iemlib].
Syntax suggestion: what about [declare -import iemlib]?
Some consensus on how to do things like that ("keyword arguments") ould help:
1. In Flext/Jitter style: [declare @import iemlib].
2. In Unix/Tcl/Toxy style: [declare -import iemlib].
3. In GridFlow style: [declare, import iemlib], where "import" is a selector and the name of a method, and the comma is like [initbang].
The use of "@" to mean "attribute" may remind of Ruby, but in Ruby, "@" is a kind of variable, not a kind of argument.
The GridFlow style relies on the ability to replace keyword arguments of a constructor by a bunch of little messages that modify the object just after it's constructed (this is not always possible).
One of (1) and (2) is redundant. Then I wouldn't know which of that or (3) to pick. The (3) has the important concept that every option is runtime-configurable. That might not be an issue for [declare], but that is an issue for other object classes that [declare] would be consistent with.
How would you specify multiple imports? It may make the difference between Unix style and Tcl style:
[declare -import foo -import bar] <- unix [declare -import {foo bar}] <- tcl
because in tcl style, every time an option is specified, it has to completely override the existing option of the same name: it can't add up like pd's -lib -path -helppath. Pd doesn't accept {} so here are some possible replacements:
[declare -import (foo bar)] <- GF-style nested lists [declare -import foo bar] <- use dash-prefixed symbols as delimiters [declare, import foo bar] <- use comma as delimiter
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada