Changeset d7cb0f7
- Timestamp:
- Aug 6, 2024, 11:16:38 PM (3 months ago)
- Branches:
- master
- Children:
- 5fdaeab1, 63d5b9c8
- Parents:
- 8cb2ff6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/jiada_liang_MMath/trait.tex
r8cb2ff6 rd7cb0f7 120 120 Hence, the \CFA enumeration traits never connected with the specific @enum@ kind. 121 121 Instead, anything that can look like the @enum@ kind is considered an enumeration (duck typing). 122 However, Scala, Go, and Rust traits are nominative: a type explicitly declares a named traits to be of its type, while in \CFA, the type implements all functions declared in a trait to implicitly satisfy a polymorphic function/type needs.122 However, Scala, Go, and Rust traits are nominative: a type explicitly declares a named traits to be of its type, while in \CFA, any type implementing all requirements declared in a trait implicitly satisfy its restrictions. 123 123 124 124 One of the key differences between concepts and traits, which is leveraged heavily by \CFA, is the ability to apply new \CFA features to C legacy code.
Note: See TracChangeset
for help on using the changeset viewer.