Object Pascal Handbook
marcocantu.com
marcocantu.com
I am novice, so be gentle. I know this might seem dumb.
I don't know that much about Nim, but there are a few things about it...
1. The Nim compiler was originally written in Pascal.
2. Nim uses Pascal-style type syntax (i.e. "name: type" rather than the C-style "type name").
3. Nim syntax was inspired by Python, which in turn was heavily inspired by Modula-3, which in turn is a descendant of Pascal.
* Range-based subtyping: You can declare a type as being an int of 1..5. Many Pascal-derived languages (Modula, Oberon, Ada) have this.
* Ranges are first-class values and can be used in loops and case statements: "for i in 0..10".
* Arrays: "array[1..5] of integer" becomes "array[1..5, int]". Nim also has open arrays, just like ObjectPascal.
* Enums. Almost exactly like Pascal.
* Sets, eg. "set[char]", which can then assign things like {"a".."z"}, almost exactly like Pascal.
* Functions like ord() and prec().
* For a long time Nim used Borland-influenced naming conventions (mainly three: TFoo for classes, PFoo for pointers to objects, FFoo for fields). Fortunately this has been deprecated.
* "var", "type" etc. being block-oriented and used to declare multiple things on separate lines.
* Functions/methods are called "procedures". (The Nim manual insists this is more correct. I'm not so sure.)
* Case insensitive identifiers.
I honestly prefer FreePascal to C, but I just think that ship has sailed at this point.
Object Pascal Handbook by Marco Cantu
Available to registered users of Delphi XE8, RAD Studio XE8, C++Builder XE8, and Embarcadero All-Access XE This promotional item are available on XE7 purchases made after January 1, 2015 and for XE8 purchases made after April 7, 2015.
That's the link, I guess.