178 karma · joined May 15, 2019
Socials:
- github.com/Andrew-Foote
Interests:
Art, Books, Gaming, Music, Programming, Remote Work, Science, Web Development, Writing
---
Both L sounds involve raising the tongue, but with the light L the tip of tongue approaches the alveolar ridge (the part of your gum just behind your top row of teeth), while with the dark L the tip of the tongue does the same thing, but the back of the tongue simultaneously rises towards the soft palate (this is called "velarization", and it's the same gesture that accompanies lip-rounding to form a W sound). There may be further differences depending on accent, e.g. in Cockney accents the tongue-tip gesture of dark L is lost completely so that dark L becomes a fully-fledged vowel, and it might even acquire lip-rounding and merge with W. Other accents have lost the distinction as well and generalized either light L or dark L to all positions (e.g. Scottish English tends to use dark L everywhere).
In the older pronunciation of "falcon", there's no L there at all, light or dark. It was borrowed from Old French "faucon", and the L was restored in spelling via Latin influence in more or less exactly the same way as the B in "debt".
Other examples: dumb, tomb, comb, womb, numb, thumb, catacomb, Coulomb. All of these have a silent B.
The English t is also aspirated a lot of the time (though not as consistently at the end of a word as at the beginning), while the French t is never aspirated.
There could be differences between the two short e sounds as well, but that depends more on which particular accents of English/French you're talking about.
On the other hand, in American English, flapping happens pretty reliably in the appropriate environment, and it's absolutely standard and expected---any failure to flap where required will probably lead to your speech being perceived as having a British twang.
There's also a phonemic vs. phonetic thing here. In British English, a T turned into a glottal stop can still be distinguished from any other consonant, so it's still a T phonemically even though the phonetic realization has changed. In American English, flapping applies to both T and D and the result is usually indistinguishable with respect to having been originally a T or a D. In that sense American is going a step further.
def lex(src):
state = skip_whitespace
while state is not None:
state = yield from state()
It wasn't particularly essential to use the return value from the generator here, as I could have just made the state variable available in the scope of the state functions for them to mutate, but this seemed like a cleaner way to do it as it enforced the idea that each new state corresponded to a new function.It seems clear at any rate from the way these discussions always go that aphantasia vs. non-aphantasia, as real as the distinction may be, is hardly predictive of anything else about a person, and the subject only attracts so much interest because people mistakenly assume it's more predictive than it is.
from functools import partial
a |> partial(zip, b) |> partial(map, func1) |> partial(filter, func2) |> partial(forall, func3)
Obviously it's a bit more verbose than if the currying was done implicitly, but it's not too bad, I think. You could also import partial under a shorter name if you want.partial does have an advantage over implicit currying in that you can use keyword arguments to neatly curry on a parameter other than the first, although this isn't properly utilized by Python because most of the built-in functions have place-based rather than keyword arguments. In languages with implicit currying you have to use anonymous function expressions or functions like flip (flip(f, x, y) = f(y, x)) to deal with this.
It might also be worth noting that |> doesn't essentially need to be an operator, it would just be syntactic sugar:
def chain(x, *fs):
y = x
for f in fs:
y = f(x)
return y
chain(a, partial(zip, b), partial(map, func1), partial(filter, func2), partial(forall, func3))
Obviously having it as an infix operator is nicer, and produces less parentheses.(Of course there is a lot of stuff in set theory that is counter-intuitive when you get to infinite sets, but I still think that's better than what you have with categories where they're just abstract algebraic objects and there isn't any intuition in the first place.)
Even if you're not drawing from something you can see, you can have a procedural memory of how to draw the thing, and you can see what you've already put on the page, and experiment if necessary using an eraser.
I don't have complete aphantasia, but my visual imagination is pretty weak, and I can still draw.
if(all(requirements)) { proceed; }
If there are no requirements that need to be satisfied, then you should be able to proceed.The classic example is a function which maps an interval to a circle by applying cos and sin to get the coordinates; this is continuous as small changes in the interval result in a small change in the position on the circumference, but its inverse is not continuous because there will be a point on the circle where the nearby points on one side come from the start of the interval but the nearby points on the other side come from the end of the interval.