[Python-ideas] Dart like multi line strings identation
Richard Damon
Richard at Damon-Family.org
Sun Apr 1 16:57:32 EDT 2018
On 4/1/18 4:31 PM, Brendan Barnwell wrote:
> On 2018-04-01 05:36, Steven D'Aprano wrote:
>> On Sun, Apr 01, 2018 at 08:08:41AM -0400, Richard Damon wrote:
>>
>>> One comment about the 'combitorial explosion' is that it sort of
>>> assumes
>>> that each individual combination case needs to be handled with distinct
>>> code.
>>
>> No -- as I said in an earlier post, Terry and I (and Eric) are talking
>> about the explosion in number of prefixes, not the complexity of the
>> code.
>>
>> You are right that many of the prefixes can be handled by the same code:
>>
>> rfd rfD rFd rFD rdf rdF rDf rDF
>> Rfd RfD RFd RFD Rdf RdF RDf RDF
>> frd frD fRd fRD fdr fdR fDr fDR
>> Frd FrD FRd FRD Fdr FdR FDr FDR
>> drf drF dRf dRF dfr dfR dFr dFR
>> Drf DrF DRf DRF Dfr DfR DFr DFR
>> # why did we support all these combinations? who uses them?
>>
>> presumably will all handled by the same "raw dedent f-string" code. But
>> the parser still has to handle all those cases, and so does the person
>> reading the code.
>>
>> And that *mental complexity* is (in my opinion) the biggest issue with
>> adding a new d-prefix, and why I would rather make it a method.
>
> That doesn't seem a very reasonable argument to me. That is like
> saying that a person reading code has to mentally slog through the
> cognitive burden of understanding "all the combinations" of "a + b +
> c", "a + b - c", "a * b + c", "a - b * c", etc. We don't. We know
> what the operators mean and we build up our understanding of
> expressions by combining them. Similarly, these string prefixes can
> mostly be thought of as indepedent flags. You don't parse each
> combination separately; you learn what each flag means and then build
> up your understanding of a prefix by combining your understanding of
> the flags. (This is also glossing over the fact that many of the
> combinations you list differ only in case, which to my mind adds no
> extra cognitive load whatsoever.)
>
Actually ALL the variation listed were the exact same prefix (dfr) with
the 6 variations in possible order and the 8 variation of each of those
in case. Which just shows why you don't want to try to exhaustive list
prefixes.
--
Richard Damon
More information about the Python-ideas
mailing list