* Adds C Interop documentation for Strings
* Replaces usage of triple backticks with single when used in a paragraph
* Adds link to new C Interop docs in the Language Guide
* Small tweaks to wording in C Interop doc
* Adds Array section to C Interop doc
* Adds deftemplate examples in C interop doc
* Small copy change in C interop doc
* Adds identifiers section in C interop doc
Interfaces are now explicitly implemented using the `implements` key
word (in the past, implementation of an interface was implicit based on
matching names and function signatures).
This commit updates the language guide to account for this change and
includes an illustrative example to provide guidance on using
interfaces.
I've updated the example code included in the `with` section to better match the style of other sample code throughout the document. Big thanks to @hellerve for pointing this out!
Added a few short sentences and samples to document the `with` form. I don't have especially robust knowledge of the form or its implementation, so please correct this/augment as necessary!
Based on the docs, I expected that `defdynamic` would allow me to define and use a function at the REPL. Instead I got the following error:
```
> (defdynamic square [x]
(* x x))
Invalid args to `defdynamic`: (defdynamic square [x] (* x x)) (did you try to define a dynamic function - use 'defndynamic' instead) at REPL:1:1.
```
Definitely props on the helpfulness of the error message, which makes this an easily overcome issue. However, I'd like to propose this change to the guide so that any other newcomers don't hit a bump the first time they try something.