4 ms·
I also thought about that, although I have to slightly disagree because I actually like Z. Having only integers and sets really drove the point for me of "tell
by probably_wrong 7y ago
I also thought about that, although I have to slightly disagree because I actually like Z. Having only integers and sets really drove the point for me of "tell me what it does, not how it does it".
I should also mention that naming a project with a single letter guarantees that no search engine will easily find it. It took me forever to find a link to Z, and I knew what I was looking for...
(For those who never heard about Z: https://en.m.wikipedia.org/wiki/Z_notation https://en.m.wikipedia.org/wiki/Z_notation)
- thom 7y agoWe had to do extensive work in pen and paper and I just found it tortuous. I wouldn’t say I disliked the language itself or the rationale (although it’s not been something I’ve reached for in my career to date).
- peteretep 7y agoThere's nothing like going up to a white board and covering it in obscure Z-Notation hieroglyphics for winning technical arguments
- peteretep 7y ago> "tell me what it does, not how it does it" ({1},(∅ o α)) ∈ I̸=I ∧ ((∅ o α),{2,3}) ∈ I⊆I {M : Model; t : W | t ∈ [ e ]E M ∧(∀t :[e ]EM•[e ]]E (M⊕t)=[[e ]]E (M⊕t)) •M→[e]E (M⊕t)} ⊆ [[μe•e]]E It's not always obvious to decipher what it does, either.
- jayshua 7y agoCan anyone tell me what that does do?
- probably_wrong 7y agoI wanted to give it a try, but the text has unicode errors that behave slightly diferent in every browser I tried, so I'm not sure how it's supposed to be read. That said, here are two general pointers to get an idea: 1. Z uses sets, functions, and integers as its basic "type", on top of which you write more complicated "types". Therefore, in Z you often write specifications of the type "I have this element that belongs to this set, a function that maps elements of this 'type' to other types, and this operation says that my element is inserted into this mapping function" (without you writing down how the insertion is computed). Note that I write "type" in quotes because Z is not a programming language, and my use of the word type is a bit careless. 2. The comment is being a bit cheeky, since Z has comments, function names, and whitespace for better understanding that the comment is not using. The comment is right that the syntax can get complex at times, though, but calling your varibles "t" and "M" doesn't help. Random fact: the Wikipedia example is a bit clearer, but written in Spanish. It details how to write a toy birthday agenda. It turns out that it was uploaded by a guy I personally know, which should give you an idea of the size of the Z community...
- peteretep 7y ago> The comment is right that the syntax can get complex at times, though, but calling your varibles "t" and "M" doesn't help. For what it’s worth, this was posted verbatim from the spec :-D