Traits and fmt brought up to the compiler of 21 October
- Where an implementation is written: with its trait or its type, a newtype for anything else, and traits, types and impls usable above where they are written. - One implementation that fits decides the type of a call. - A function is written as #<procedure> wherever it is; Procedure. - A (dyn T) implements the traits T requires. - Formatting: the lambda that returns a vec of mixed pieces, in the table of errors; the short fmt tour in Language basics in the style of a string being a block. 🤖 Generated with [ECA](https://eca.dev) Co-Authored-By: eca-agent <git@eca.dev>
This commit is contained in:
parent
25720e4fb2
commit
5a9f65accf
2 changed files with 32 additions and 12 deletions
|
|
@ -932,8 +932,11 @@ The messages for the common mistakes, and what to write instead:
|
|||
| Block: ... found a boolean, or found a bool | @code{(if b "yes" "no")} |
|
||||
| Block: ... found a (Vec string) | @code{(vec-map BStr xs)}, or @code{(: xs Block)} above @code{(def xs ...)} |
|
||||
| Block: ... found a (Vec (Vec ...)), at a lambda that returns a vec | @code{(each [...])} around the vec the lambda returns |
|
||||
| these types do not match, naming two of int, string and char, at a lambda that returns a vec | @code{(each [...])} around the vec the lambda returns |
|
||||
}
|
||||
|
||||
The last two are one mistake, a lambda given to a function that does not say it returns a block. Its vec is a vec of strings if all its pieces are strings, and then @code{show} gets a vec of vecs. If the pieces are of different kinds, such as a name and a count, the vec has no type at all, and the compiler says so inside the lambda.
|
||||
|
||||
@subsubsection{A block of your own}
|
||||
|
||||
@code{captured} renders content to a string and gives it to a function, which returns the block to write in its place. It is how a block that needs the whole of its content is made, and how padding and trimming are written:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue