From: Don M. <df...@ri...> - 2009-05-02 00:50:32
|
2009/5/1 Richard Smith <ri...@ex...>: > It is to some extent a nuisance, but one I'd rather see > dealt with now rather than as an afterthought. I agree completely. Sorry if that wasn't clear. > However, just to be absolutely clear, I do *not* think that > we want a unique representation for a given composition. I agree wholeheartedly with this, too. If we wanted a unique representation, we'd just write down all the rows, after all! > p,s,s,b,b, repeat(p, {/23458967/: break}) While noting the course end is the conventional way, or at least the old fashioned convention, for indicating how long a course is, the more I think about it the more I think it is A Bad Idea. a) My experience with dealing with submissions of peal compositions and so on is that the single most common error is to cite an incorrect course end. If we depended upon a course end for the definition of a composition this would make it exceedingly fragile. b) It's not really unique. It is perfectly legal (in the sense of not contravening any CC Decisions) to have, in an MEB, a chunk that goes through the same change two or more times without an intervening call. Depending upon a particular course head in the face of this is ambiguous. Granted, it's not something I'd personally want to do, and is unlikely to come up often in practice, but it is a potential problem. And I believe an extreme example of exactly such a construction has been rung at least once. I continue to think the better solution is to specify, when necessary, how many leads a course is. > W = repeat( { b, /*8?/: b, break; p } ) > > Repeat repeats its argument indefinitely until it is > terminate. This can either be with a break (a controlled > exit that'll continue proof from the thing following the > repeat block), or an abort (which halts proof). The default > rule for 'false' (which is implicitly invoked when the > composition becomes false, for what ever definition of false > is currently in force) calls this. I am troubled by this "repeat until false" business. 1) Viewing GSiril simply as a proving platform, it falls into a trap that I think is unfortunate, though common. It causes the thing to stop, or at least become useless, at the first false row. It can really be helpful to the end user to have a broader presentation of where a composition runs false. For example, if you see just a handfull of rows, all with the treble in 6ths, are false against one another it leads you to consider the root cause as different than if you see 32 consecutive rows are false against exactly the same 32 rows also appearing consecutively somewhere else! 2) I don't think a particular notion of "true" has any place in our definition of a composition for storage in the database. As discussed earlier, I think a composition should be some sequence of changes, structured in some appropriate way, but that how it stacks up against various definitions of truth should be something determined externally (though, perhaps cached in the database), on the same footing as how many little bell rollups it contains, whether it contains back stroke tenor reversals, whether or not it contains an equal number of plains, bobs and singles, or whether or not it is all the work. -- Don Morrison <df...@ri...> "They were treated like royalty--not the sort who get dragged off to be beheaded or have something nasty done with a red-hot poker, but the other sort." -- Terry Pratchett, _A Hat Full of Sky_ |