Hacker Newsnew | past | comments | ask | show | jobs | submit | anoctopus's commentslogin

If something may or may not be there, that should be a clear part of its type that the compiler checks you handled (even if it's just you deciding to panic, because sometimes that's the right thing to do). Then there can be a type for just the thing, no hidden possibility of it not being there that you have to check for, and almost all code can be written for the type that is guaranteed to be there, with only a little code dealing with only possibly-there values.


Completely agree, although I'm often put off by the comparatively worse ergonomics for the python emulation, to the point that I sometimes miss obvious-in-retrospect places I should be modeling the domain with more variants, even in code I'm already using unions of dataclasses. The ergonomics and clarity of `data Foo = Foo Int | Bar` are incredible.


Parametric polymorphism is great and undervalued by most languages, but ad hoc polymorphism is also valuable at times, mainly when the polymorphic function represents the same abstract operation on distinct types.


Python loses cred in FP circles for being rather opinionated against FP. Map/filter being second-class to list comprehensions, reduce and partial being in functools, and no multi-line lambdas are the obvious/well-known examples of this, but more generally python has first class functions but doesn't make creating and manipulating functions ergonomic.


Where is the "no multi-line lambdas" myth coming from? I see this one a lot and its wrong. Python's lambdas can have as many lines as you want.

Did you mean to say that lambda expressions can't contain statements? But no Python expressions can! But functional programming is all done with expressions anyway, to the point where functional languages don't even have statements, so what's the problem?


No statements means no locals, which is sometimes bad for clarity and/or performance. Functional langs without statements have let-bindings.


That's really not true either. The lambda parameters are locals [a]. A let-binding is just a lambda that you call immediately. You can use defaults so the value doesn't have to appear as an argument [b]. Also, Python has assignment expressions now [c], and comprehensions are expressions which can have their own locals [d].

    >>> (lambda a, b=2:
    ...   print(a, a, b, b, c:=3, c, *[[d,d] for d in [4]][0])
    ... )(1)
    1 1 2 2 3 3 4 4
That's four different ways to get locals with no statements.


Automatic, implicit currying is the Haskell feature that most surprised me with how much I like having it. It makes taking apart and composing functions so much nicer, by making a very common case for partial application syntactically and mentally cheap.

Trying to use currying in languages where it isn't built in makes no sense to me. It doesn't seem to compare well against doing the obvious partial application with a lambda. And it doesn't play well with variadic functions, default arguments, etc. (I have ideas for automatic currying of record types that I hope to explore in a toy language at some point, but that only does so much.)


It's another way that social anxiety manifests, as a lower level filter. It's how mine generally shows up, and used to be much worse before I did a bunch of therapy.

One thing that made this being anxiety based very clear was that one night I took phenibut for a party, and the following morning it was still in effect and I found myself thinking of way more jokes and doing little improv reactions to the people I was talking to. It's like my brain was completely filtering them out due to very low level anxiety. I got lucky and the effect partially persisted afterwards, because it taught me that saying these things was safe, so I didn't have anxiety about them afterwards.


It's standard (journalistic) practice to refer to trans people by their preferred pronouns even when referencing events before their transition.


"It's standard (journalistic) practice"

I'm definitely not a journalist. I think it's reasonable to refer to someone as their actual gender during an actual event , it would seem rather more accurate, no? Also, as long as people are being reasonable I don't think we remotely need that level of language policing.


> I'm definitely not a journalist. I think it's reasonable to refer to someone as their actual gender during an actual event

What actual gender? You mean legal sex/gender (which is a form of externally-ascribed gender)?

Or do you mean gender identity and, if so, on what basis do you assess it?


'Gender' is how people identify.

'Sex' is their biology.

I usually do 'gender' - which is an identity thing, I mean, that's the polite thing to do.

But Manning was a 'he' when the disclosures happened, so when talking about that, I usually use 'he'. It seems fair to me.


Uhh, people who transition don't really enjoy being referred to as their previous gender they struggled with. So that's an empathy/common decency thing not to do that.

But this is HN and we like not to consider empathy here (no offence, I exhibit this exact thought pattern too), we need a "logical" explanation. So what about: a person with a third arm does not have that defect anymore after it is surgically removed. You won't refer to someone like that as a person with 3 arms, for a couple of reasons.


Gender expression is how people show their gender to others.

Gender identity is how people identify.

(gender disphoria is a mismatch between gender expression and gender identity)

It's possible that at the time of disclosures, Manning would already identify herself as woman, even if her gender expression was entirely masculine. Using the feminine gender is a matter of respect.


If he identified as 'he' then, then he get's a 'he' when I'm discussing facts about the story when they did that action, objectively.

We don't alter history because of how someone possibly may have felt at the time. We don't know how 'he or she' may have internally identified back then.

Esp. because we're talking actual, objective facts, and not 'to them' or whatever, I think it's reasonably to use the gender that they used to identify to the world at that point.

I also think it's a little absurd the level of linguistic policing we have to get in. I think that we're only scratching the surface of how far you could take it.

Point - your language is fairly 'gender binary normative' - and a bunch of people are now even offended by that. There's so many ways to 'identify'.

The Uni of Oxford student union is now recommending that you haver use 'gendered pronouns' i.e. 'he/she' until the person you are talking about has specifically expressed to you their gender preference.

Meaning - that person with a big beard, beer belly, deep voice name 'Joe' - you can't say 'he' - until he has specifically told you 'he prefers' 'he'. Or you're 'not being respectful'.

It's getting absurd.

Manning seems to identify as a 'she', I'll have no problem referring to her as 'she' if I see her or talk about her presently - but I'm really not interested in being policed or moralized beyond that.


she was probably never a "he".


[flagged]


There is a multi-dimensional spectrum of biological characteristics commonly used to define "gender", true enough. If 'actual' gender means a binary choice, that's a social construct that disagrees with physical, biological reality.


> If 'actual' gender means a binary choice, that's a social construct that disagrees with physical, biological reality.

There is a binary category in which you fall into that defines if you can procreate with the other or not.


What's your gender if you can't procreate with someone of either sex?


"any of the sexes", if you don't mind.


I don't mind changing it, but it's too late to edit.


Would your body produce eggs if it was working flawlessly? Then you are a female; if not, male.


What about people with both testes and ovaries? If those were working flawlessly, they would produce eggs and sperm. Your definition labels them female. If you're happy with that, good for you, but it seems misleading to simply label such a person "female" based on egg production.

If you'd like to exclude such people from your definition, and restrict it to people who are (for want of a better term) "stereotypical" male or female, that seems like a circular definition.


My definition in wrong in the same sense that Newtonian physics are wrong. How many people have lived with working ovaries and testes? These extreme conditions do not create a different sex. My definition is good enough.


It certainly is good enough for you, if you say it is. It's not good enough for me (and not good enough for people who don't neatly fall into it; luckily for them your simple personal definition isn't the legal definition in many societies), but fortunately I (and you, I assume) are happy existing in a world in which other people have different ideas (many of course are not, and would happily burn people who don't fit neatly into this definition).

Given the problems we see in society, this definition is clearly not good enough for everyone and not good enough to satisfactorily deal with the problems arising; I might wonder what use a definition is if it doesn't actually guide us in solving problems. Perhaps this definition must be compromised when encountering reality in these situations.


[flagged]


I am ready to accept a better definition, but I have not seen one.

Why do you need one? Why not just accept reality as it is - that reality simply doesn't match the simple, "everyone is a man or a woman" model? Sure, sometimes reality is just too complex to work with and we need to create a simplified model of it to work with, but this really isn't a complicated concept.

What are you talking about?

I'm talking about the wider problems caused by refusing to accept reality; gender segregated facilities, for example, that cater only to those who fit neatly into a binary definition. Problems caused by legislating, for example, that the only acceptable genders of record are "male" and "female", and in doing so excluding people who don't fit. Those kinds of problems.


There is a binary category in which you fall

In which some people fall. This definition seems to exclude many people from the definition completely. If you're happy with that, good for you; many people aren't happy with it and find this binary label system just doesn't work when applied to the world of actual people.


The purpose of pronouns is to serve as a shorthand for the actual name (the "noun" in "pronoun"). Instead of saying "Chelsey Manning said this, then Chelsey Manning did that" you just say "She said this, then she did that".

If the etiquette rules for pronouns are confusing, just use the same rule you would use for any other name. For example, you would say "Pope Francis used to work as a nightclub bouncer" even though he was called Jorge Bergoglio at the time.


Could you please provide a source for this standard?


Nostalgia is an odd word to use here when Guile is a Scheme, and so is part of the Lisp family.


is lisp older than C?


Yes.

It's the second-oldest high level programming language (after Fortran).

- Fortran: 1957

- Lisp: 1958

- ...

- C: 1972


I mean to say lisp family. so Fortran counts as part of C family.


C is part of the Algol family. Fortran was/is syntactically and semantically quite different. Algol was almost contemporaneous with Fortran and, although did learn from Fortran, was, at least partly, a reaction to its perceived flaws.


Well, contemporary Fortran is probably part of Algol family too, since newer versions of Fortran (at least 77 onwards) incorporate the block structured programming concepts from Algol.

The "family tree" analogy works imperfectly for programming languages since it is more of a directed cyclic graph than a tree structure – Fortran influenced Algol and then Algol in turn influenced Fortran.


Java is still taught in plenty of places and is entrenched enough to stick around for the foreseeable future. The JVM would still be fine even if Java the language declined. Clojure is is a much less vulnerable position than most languages in terms of VM risk, with Clojurescript and ClojureCLR.

The real benefit of native Clojure to me would be for reducing startup time and the JVM overhead in containers. The best option for this right now is CLJS, but it would be nice to just not have a runtime.


You always need a runtime, even if it is a native compiled one.


>Claim: With this setup, I can’t login easily with my LastPass, 1Password, etc browser extension. >Rebuttal: This is a legitimate claim but it’s equally plausible to use an email integrated browser extension.

You could do that, but since this isn't a very common login scheme, these might not exist/be popular yet. Also, some of us use password managers that aren't browser integrated, and that further reduces the chance of me having a decent workflow for logging in to the site.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: