Because let x: y
is syntactically unambiguous, but you need to know that y
names a type in order to correctly parse y x
. (Or at least that's the case in C where a(b)
may be a variable declaration or a function call depending on what typedefs are in scope.)
barubary
include Hebrew in their language, because I guess they were feeling kabbalistic
... or because the developers were Israeli: https://en.wikipedia.org/wiki/Zend/_(company)#History
I am 100% confident that your claim is factually wrong.
I agree with your core point, but no software is intuitive.
POV: You open vim for the first time.
b == 7 is a boolean value
Citation needed. I'm pretty sure it's an int
.
Do you know the difference between a script and a program?
A script is what you give the actors; a program is what you give the audience.
I don't understand the complaint. What exactly is the issue?
I'll update my mems when Microsoft decides to implement C99. (Hey, it's only been a quarter of a century ...)
Yeah, just don't make any mistakes and you'll be fine. Come on guys, how hard can it be?
The same is true of std::endl. std::endl is simply defined as << '\n' << std::flush
; nothing more, nothing less. In all cases where endl gives you a "properly translated" newline, so does \n
.
Both of those declarations look weird to me. In Haskell it would be:
... except that makes
bob
a function taking a tuple and it's much more idiomatic to curry it instead:The
[T]
syntax also has a prefix form[] T
, so[String]
could also be written[] String
.OCaml makes the opposite choice. In OCaml, a list of strings would be written
string list
, and a set of lists of strings would bestring list set
, a list of lists of integersint list list
, etc.