>which it isn't--(draw-bezier vec1 vec2) is a valid call) It is required, or at least I meant it to be required. For simple straight lines, (draw-line) is a reasonable choice. I think Bezier curves can be reduced to straight lines in the two-point case, but I am not exactly sure of the math. So at least three points, two knots and a control point are required. Moreover, adding additional points (as in 5 arguments) does not turn a cubic Bezier into a quartic Bezier in the sample implementation, but does some evil image-magick trickery (ImageMagick explicitly warns against using 5 points). >(draw-bezier vec1 vecI ... vecN) I wanted to use an ellipsis, but ellipsis seems to have some special meaning in Scheme (at least in the macro definitions), which I am not as familiar as I should be. If it is fine, I will replace the bracket notation with the ellipsis. The brackets I took from man pages, where it usually denotes "optional", and the asterisk means "0 or more times" almost everywhere. On Thu, 17 Sep 2020 at 13:49, Wolfgang Corcoran-Mathe <xxxxxx@sigwinch.xyz> wrote: > > On 2020-09-17 12:00 +0800, Vladimir Nikishkin wrote: > > Is it fine to use the [vecI]* notation, or there is a more common one in Scheme? > > The [vecI]* notation is unfamiliar to me. Is it used in other SRFIs, > or elsewhere? > > The new version, > > (draw-bezier vec1 vec2 [vecI]* vecN), > > seems a little misleading, since vecN appears to be required (which it > isn't--(draw-bezier vec1 vec2) is a valid call). If the double-bracket > version mentioned earlier seems ugly, I recommend: > > (draw-bezier vec1 vecI ... vecN) > > -- > Wolfgang Corcoran-Mathe <xxxxxx@sigwinch.xyz> > > "A LISP programmer knows the value of everything, but the cost > of nothing." --Alan J. Perlis -- Yours sincerely, Vladimir Nikishkin