Viewing profile — jorkadeen
jorkadeen
HN member- Joined
- Thu, Dec 20, 2018, 1:32 AM UTC
- HN karma
- 212
- Public activity
- 65 items
- HN profile
- View on Hacker News ↗
About jorkadeen
No profile information was provided.
Recent public activity
- story
-
comment
Comment #45377752
We can certainly extend it to a language feature-- if there are good use cases. Do you have some specific special effects in mind?
-
comment
Comment #45373361
It was a simple example; whether a specific optimization applies is very tricky. We have to look at the details. When can Rust move or eliminate a binder? Does Rust support automat…
-
comment
Comment #45373224
We think that functional programmers should be able to write e.g. `List.count(x -> x > 5, l)` (or e.g. use pipelines with |>) and have it run as fast as an ordinary imperative loop…
-
comment
Comment #45372985
A few other languages are: - https://effekt-lang.org/ - https://koka-lang.github.io/ - https://www.unison-lang.org/ - https://antelang.org/
-
comment
Comment #45372796
The challenge is that the compiler uses the type-and-effect system for many of its tasks, including whole-program optimization and code generation. If printing- or logging statemen…
- story
-
comment
Comment #44541185
Flix does not have significant whitespace. Where did you run into trouble? You are welcome to swing by Gitter if you need help. We are friendly :-)
-
comment
Comment #44540989
You can always add your own `safeDiv` function :-) I believe native compilation is possible via Graal native-image-- but I have not yet tried it.
-
comment
Comment #44540982
We plan to explore semicolon inference in the future; but there are a lot of dangerous corner cases to consider.
-
comment
Comment #44540944
Thanks-- I fixed the links!
-
comment
Comment #44540923
The counter-point is the following: Functional programming is great for working with lists and trees. But functional programming (and imperative programming) struggle with succinct…
-
comment
Comment #44540877
In the uncommon case, some stack frames must be heap allocated. This is unavoidable when (a) the runtime enviroment, here the JVM, does not support tail calls, and (b) the language…
-
comment
Comment #44540860
What do you mean? In Flix, if a function has "Bool" as a return type then it can only return a Boolean value. That's what a type system ensures. Similarly, in Flix if a function ha…
-
comment
Comment #44540806
That's me. But I must admit that I prefer Cholula Hot Sauce. In addition to the imperative `foreach` construct, Flix has two constructs for applicative[1] and monadic[2] comprehens…
-
comment
Comment #44529565
But in Flix you can write: def main(): Unit \ IO = Map.empty() |> Map.insert("Hello", "World") |> Map.get("Hello") |> println So I am not sure what you mean? In general, if you lik…
-
comment
Comment #44529263
That's right. Locally scoped mutable memory in Flix is very similar to the ST Monad. The two major differences are: (a) Flix is in direct-style vs. monadic style and (b) we use a t…
-
comment
Comment #44529255
All excellent points. I think when it comes to programming language design, sometimes I feel that a design has a 90% chance of being good and a 10% chance of being bad. For the log…
-
comment
Comment #44529238
Not sure I agree. A simple example: If your language has null as a subtype of every type then you will have null ptr exceptions everywhere. If your language does not have a null va…
-
comment
Comment #44529213
There is no significant indentation. What leads you to be believe that?
-
comment
Comment #44529197
The StringBuilder example is just that-- an example that many software developers should be familiar with. The deeper idea is that in Flix one can write a pure function that intern…
-
comment
Comment #44524616
The parent poster is correct. We do monomorphization, hence Flix types are unboxed. For example, a `List[Int32]` is a list of primitive integers. There is no boxing and no overhead…
-
comment
Comment #44524547
I strongly agree. Java and JVM bytecode may not be our "cup of tea", but it is simply unrealistic to implement any runtime environment with comparable performance, security, robust…
-
comment
Comment #44524487
It is a fair point-- the implicit argument being that this allows `c` and `d` to be bound before they are used, and hence auto-complete can assist in the `select` clause. Neverthel…
-
comment
Comment #44523995
The JVM (and other VMs for that matter) do not grant direct access to the stack. But the good news is that the common case incurs no overhead.