Talk:L-system

From Rosetta Code

Motivation

This task pretends to fulfill the Rosetta Code goal of comparing solutions in different languages, (in this case) for the task of implementing a generic L-system. Laurence (talk) 05:26, 12 April 2024 (UTC)

We already have Koch_curve, for which there is no Formulea entry, so why not move that there. Should someone be interested in Lindenmayer systems then a quick search reveals ten of them already on this site, so I hardly think we need an 11th. --Petelomax (talk) 12:43, 12 April 2024 (UTC)
Although we have a lot of curve drawing tasks not all of them use the L-system. For example the Wren solution for the Koch_curve task simply draws it from first principles. I don't therefore think it's unreasonable to have a generic L-system task and you can then draw what you like with it. --PureFox (talk) 14:47, 12 April 2024 (UTC)
I agree with PureFox - the task is specifically about the L-System, not about the Koch curve (which isn't mentioned in the task description). It might be better if the Task specified which test cases to use, instead of leaving it to the sample author.
There are a number of samples now. I vote for re-instating it as a Draft Task. --Tigerofdarkness (talk) 12:31, 13 April 2024 (UTC)
Guess we need to decide one way or another as the completed task count of Wren is now over 100%. --Tigerofdarkness (talk) 19:16, 13 April 2024 (UTC)
I have not ever noticed that it is not a draft task anymore!, it was created as draft task. IMHO it should be a draft task now (4 solutions) and it could be promoted to full task after a considerable number of solutions (let us say 10), after that, it should prove that the intention described in the "motivation part" really will actually have worked.Laurence (talk) 22:48, 13 April 2024 (UTC)
There are at least 11 tasks that can (or must) be solved by an L-system, "rounded" variants not counting: (Cantor set, fractal tree, Koch curve, Dragon curve, Sierpiński triangle, Sierpiński carpet, Sierpiński square, Sierpiński curve, Peano curve, Hilbert curve, Penrose tiling), and a several that there are not (yet), i.e. Sphinx, Gosper, Pentaplexity, Lace and of course, model of plants. The idea is the same as writing programs with similar functionallity: The first time you create a single, monolithic solution. The second one you start to identify common code and proceed to separate the generic part of the particular part, in the same file, class or whatever it is. After three o more times you decide to definitivly separate the code and to change the generic part to another file (e.g. helper functions, classes, etc). At the end it becames part of your own private, job or public library. The intened purpose of this task is to contains this "library". Laurence (talk) 22:48, 13 April 2024 (UTC)
Well then this should be the generic part, and shouldn't have anything that ties it down in an application-specific way, which for me includes all forms of "draw graphics" since there are other uses for these things. Nevermind, draft task it is. --Petelomax (talk) 23:18, 14 April 2024 (UTC)
See Koch_curve#Sidef and then Hilbert_curve#Sidef. The "Generic implementation of the Lindenmayer system" should be here. Laurence (talk) 22:59, 13 April 2024 (UTC)
The L-System isn't only for drawing curves, possibly too much emphasis is being put on fractals. The rabbit population example in the task is used in the F# entry. --Tigerofdarkness (talk) 09:19, 14 April 2024 (UTC)