From 8361e23d0ec7672460ebcf3248f5116c8c08086a Mon Sep 17 00:00:00 2001 From: Glen Whitney Date: Mon, 26 Aug 2024 20:40:56 +0000 Subject: [PATCH] Update Other --- Other.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Other.md b/Other.md index f796e82..3f8bf5f 100644 --- a/Other.md +++ b/Other.md @@ -2,3 +2,6 @@ Let's suppose you want to increment `x` if `right` is true and decrement it otherwise. In C you might write `x += right ? 1 : -1;`. In the Husht examples, the only in-line two-way conditionals that come up would render this as `x += if right then 1 else -1` or (inherited from Rust) `x += if right {1} else {-1}`. Both of these have a lot of syntax for the semantic payoff. Is there a need for a more compact inline choice for a binary? There a [stackOverflow answer](https://stackoverflow.com/a/73965190) on this topic that suggests adding an `IfElse` trait to the boolean type so that you can write `(a < b).ifelse(1, -1)`. So in Husht we could take this just a step further (and in a nod to C) allow `x += right.? 1, -1` and `a < b .? 1, -1`. + +### Mandatory return types +A function `fn myconst() -> u32 { 12u32 }` must declare its return type even though it's crushingly obvious from the return value. This is actually not DRY. Should we work to remove this requirement and allow return types to be elided when they can be deduced from the function definition?