Live data from Hacker News

Viewing profile — jorkadeen

jorkadeen

HN member
Joined
Thu, Dec 20, 2018, 1:32 AM UTC
HN karma
212
Public activity
65 items

About jorkadeen

No profile information was provided.

Recent public activity

  1. story
  2. 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?

  3. 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…

  4. 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…

  5. 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/

  6. 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…

  7. story
  8. 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 :-)

  9. 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.

  10. comment
    Comment #44540982

    We plan to explore semicolon inference in the future; but there are a lot of dangerous corner cases to consider.

  11. comment
    Comment #44540944

    Thanks-- I fixed the links!

  12. 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…

  13. 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…

  14. 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…

  15. 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…

  16. 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…

  17. 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…

  18. 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…

  19. 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…

  20. comment
    Comment #44529213

    There is no significant indentation. What leads you to be believe that?

  21. 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…

  22. 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…

  23. 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…

  24. 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…

  25. 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.