unit type Meters = m
unit type Seconds = s
val speed = 5.4 m/s
I'm unfamiliar with F# but having units right next to value is something i'll be remembering everyday from now on[1]Some other ideas that changed the way i look at programs.
* Lisp Macros
* First class functions. Passing functions as a value is something that i do everyday.
* Garbage collection. Not having to worry about memory allocation is such a relief.
The last 2 points are surprisingly a common pattern now, but for someone coming from C[2] and shell scripting its a whole different world here.
======
[0]: https://news.ycombinator.com/item?id=30749134
[1]: In school we were made to write units next to values, Now that ive seen it, i ask myself why don't more languages support this.
[2]: i'm aware of function pointers in C but its something that i rarely used(iirc qsort expected it).
All data can have a gui widget type in its metadata.
The benefit was: * If you changed the widget then the data changed. * If you changed the data then the widget changed.
The layout of the data implied the layout of the widgets.
Using that version of k was the only time that I ever willingly did UI development.
best with garbage collection support in language so as not to abuse the functional stack.
/ any time c changes, f will be updated f::32+1.8c / temp (F) from temp (C)
/ any time m or x or b change, y will be updated y::bm*x
Lots of conditional logic falls away when dependent relationships can be described this way.