lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Naming question: \function


From: Flaming Hakama by Elaine
Subject: Re: Naming question: \function
Date: Wed, 8 Jul 2020 14:48:25 -0700


---------- Forwarded message ----------
From: Carl Sorensen <carl.d.sorensen@gmail.com>
To: Urs Liska <lists@openlilylib.org>
Cc: "lilypond-user@gnu.org" <lilypond-user@gnu.org>
Bcc: 
Date: Wed, 8 Jul 2020 09:35:50 -0600
Subject: Re: Naming question: \function


On Tue, Jul 7, 2020 at 11:48 PM Urs Liska <lists@openlilylib.org> wrote:
Hi all,

I've started working on a package for displaying harmonic analysis
symbols. In the submodule for functional analysis I have (using the
original code of Malte Meyn) the main command \function, which gives
very obvious code like

  \function (D_3-7)=>

(for an intermediate dominant seventh with the "3" in bass position).

What do you guys here think: Could the use of "function" as a command
name lead a) to confusion by people mistaking it as a language keyword
or b) to issues down the road if at some point one might want to create
a core LilyPond procedure with that name?

I think that \function is *not* a good name.  It's too general.

An adjective added to it might resolve the problem.

\harmonic_function
\analysis_function
\chord_function
\structure_function
\label_function

HTH,

Carl


In my view, all functions are verbs.

Calling a function is always "doing something", even if all you are getting is a value.

When they are needed, the work a getter function does is to shield the value from changing, outside of the setter.  If you don't care about such protections or protocols, then just read/set the object property directly and don't call a function.

The verb convention also helps make code more self-documenting.  Likewise, the available get/set methods also self-document the API by showing which properties are externally relevant.

The "no side effects" rule is very arbitrary and not a worthwhile distinction in either what is or should be a function, or in how to name functions.

In terms of naming conventions, in object-oriented languages, the getFoo/setFoo or get_foo/set_foo convention is about as standard a convention as any naming convention I've run across. 


HTH,

Elaine Alt
415 . 341 .4954                                           "Confusion is highly underrated"
elaine@flaminghakama.com
Producer ~ Composer ~ Instrumentalist ~ Educator
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]