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

Huh? Currying doesn't require any nonlocal reasoning. It's just the convention of preferring functions of type a -> (b -> c) to functions of type (a, b) -> c. (Most programming languages use the latter.)

Of course it requires non-local reasoning. You either get a function back or a value back depending on if you've passed all the arguments. With normal function calling in C-family languages you know that a function body is called when you do `foo(1, 2, 3)` or you get a compilation error or something. In a currying language you just get a new function back.

Functions are just a different kind of value. Needing to know the type of the values you're using when you use them isn't "nonlocal reasoning".

And it's not like curried function application involves type-driven parsing or anything. (f x y) is just parsed and compiled as two function calls ((f x) y), regardless of the type of anything involved, just as (x * y * z) is parsed as ((x * y) * z) in mainstream languages. (Except for C, because C actually does have type-driven parsing for the asterisk.)

Another way to look at it: languages like Haskell only have functions with one argument, and function application is just written "f x" instead of "f(x)". Everything follows from there. Not a huge difference.


It arguably depends on the syntax.

In an ML-like syntax where there aren’t any delimiters to surround function arguments, I agree it can get a little ambiguous because you need to know the full function signature to tell whether an application is partial.

But there are also languages like F# that tame this a bit with things like the forward application operator |> that, in my opinion, largely solve the readability problem.

And there are languages like Clojure that don’t curry functions by default and instead provide a partial application syntax that makes what’s happening a bit more obvious.


> Even if a machine generates them.

That sounds wonderfully meritocratic, but in the real world, a machine generating it is a very strong signal that it's bullshit, and the people are flooding maintainers using the machines. Maintainers don't have infinite time.


> The ideal program is clear enough to be self explanatory.

That depends on what you're doing and who you expect to be reading your code, doesn't it? Sometimes what the human needs and what the computer/runtime needs are too far apart.


There's plenty of evidence of voter suppression in the US.

https://en.wikipedia.org/wiki/Voter_suppression_in_the_Unite...


I don't know why so many people in this thread are asking this, but as has been said elsewhere in this thread:

* It does apply to most other internet systems.

* Things like banking fraud can be detected and remedied. Election fraud is much harder to detect and even harder to remedy.

* Voting requires anonymity. Most internet systems are not anonymous: you are identified by your IP address at the very least.


The specific comment by popalchemist you're referring to is actually fine (they're talking about voter suppression, which is a problem in the US), and isn't at all one of the claims that hintymad says people are making.

Australia, as far as I know, doesn't require voters to show identity documents, and they seem to take election integrity very seriously.

We do not. Elections here are run very smoothly, with no questions whatsoever about their integrity.

No un-answered serious questions. Serious questions are asked, regularly, as well as un-serious ones by cookers. But, the serious questions, the audit, the sense "did we do ok" is continuously asked.

We have an independent electoral commission. I'm not saying its incapable of being reproachable, nothing is "beyond reproach" but I have yet to hear a serious, non-cooker accusation any political party has tried to stuff the electoral commission.

What we don't have, (and I think should have) is capped party donations. I'm tired of the money aspect of who gets the most billboards.

We also have silly bad behaviour emerging: People doing their billboards in the same style and colours as the electoral commission. Often in foreign language support roles, using words like (not a quote) YOU MUST VOTE FOR PARTY A LIKE THIS which I think is really trolling the voter badly.


> but I have yet to hear a serious, non-cooker accusation any political party has tried to stuff the electoral commission.

We do get occasional issues with individuals trying stuff, but the AEC is very good at calling it out or prosecuting it.

It's strong enough that the parties don't try anything risky.


Maybe, but the election ink stuff feels a bit overboard.

> It cannot convince a normal person of the same.

But you don't need everyone to be convinced of it first-hand. You just need everyone to trust someone who is convinced of it.


Election security should not hinge on a "trust me bro" - especially when people are being convinced the other way by Russian propaganda talking heads on social media.

Manual counting requires zero trust. In my country anyone is welcome to observe the entire process from start to finish, if they wish to do so. A few years back a fringe far-right party tried importing the voting integrity distrust over here, and recruited people to watch their local polling stations to "expose the fraud". Which was totally fine because they were always allowed to do so, and it fizzled out because zero evidence of fraud was found, and that party still didn't get a significant number of votes.


Don't these two situations (watching vote counts; understanding a complicated statistical argument that the vote is tamper-free) require the same kind of trust?

1. In both cases, everyone is theoretically capable of checking it themselves; they're theoretically zero-trust. In the former scenario, I'm theoretically capable of attending the vote count, and in the latter scenario, I'm theoretically capable of learning the statistics needed to verify the argument.

2. In both cases, most people cannot (or will not) practically check it themselves, and is trusting that someone they trust is doing the checking for them.

I'm not saying they're the exact same situation, but they both ask for a large amount of trust from most of the voters.


You are correct on both points, which you elucidated well. Let's me differentiate the two systems based on "who-to-trust".

- The observe-system operates on an adversarial basis. The people observing the voting process are state officer, independent observer, each party's observers. If you vote for party X, then you trust that party and its people to do right by you. This include trust party X's observer, who additionally is often a local well-known person. You can actively distrust all the other observers and officers, and as long as your observer gives the A-Okay, you are happy with the result. This trust in your observer is a very simple human kind of trust. No expertise is needed by your observer. If you trust other observers, your trust in the result goes even higher.

- The stats-system is founding its trust in the trustworthiness of the stats experts. The problem is that (1) you don't know the stats expert personally. In fact, a huge chunk of the population in any country doesn't know anyone who is good enough at maths and stats. If people in your family are not the math type, your friends will also not be the math type. (2) It is incredibly easy to sling mud at the expertise and trustworthiness of an expert. This process is operating at a very high level these days on social media. Anyone remotely connected to politics is continuously character assassinated by others. Adopting a stats-system actually will actually increase this mud slinging to new heights.

The observe-system is better because as someone else has said, all the counters and anti-counters to it have been known for 100s of years. Breaking it requires breking 100s or 1000s of polling stations across the country. The stats-system has more central points of trust which can be broken more easily.


For their upper house elections (which can have giant ballots), Australia uses computers in its counting, but there are humans in the process. [Here's a video from the Austalian Electoral Commission.](https://youtu.be/9AqN-Y25qQo)

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

Search: