Live data from Hacker News

Viewing profile — siknad

siknad

HN member
Joined
Sat, Dec 11, 2021, 8:22 PM UTC
HN karma
46
Public activity
29 items

About siknad

No profile information was provided.

Recent public activity

  1. comment
    Comment #49011080

    Compile time evaluation is used in Lean all the time for metaprogramming (e.g. proof automation). Any `IO` can be run there (which allows running external solvers, reading a datase…

  2. comment
    Comment #48745098

    Lean is intended by its authors to be also used as a general-purpose programming language. Lean stdlib contains an HTTP server for example. IMO the biggest problems are the lack of…

  3. comment
    Comment #43666097

    Alternatively, the Writer can be replaced with "IO", then the messages would be printed during the processing. The computation code becomes effectful, but the effects are visible i…

  4. comment
    Comment #43548314

    New mainstream languages are rarer than new better (in some way that can be favorable) languages.

  5. comment
    Comment #43386601

    Perhaps together with Agda (compiles to Haskell, has FFI to it, is more higher-level), some not-pure ML, and maybe Rust or ATS?

  6. comment
    Comment #43050688

    Maybe better performance can be achieved with specialized models. There are some that were able to solve mathematical olympiad problems, e.g. AlphaProof.

  7. comment
    Comment #42780262

    We could make explicit effect (context, error) declarations for public functions and inferred for private functions. Explicit enumeration of possible exceptions is required for sta…

  8. comment
    Comment #42779618

    > against the principles behind statically-typed languages, which all hate implicit things But many statically typed languages allow throwing exceptions of any type. Contexts can b…

  9. comment
    Comment #42672458

    VS Code support for Common Lisp is lacking. Alive extension is relatively recent and is a solo effort and thus has significant bugs and is not as feature packed as Vim/Emacs altern…

  10. comment
    Comment #42601375

    > Regarding pattern-matching and enum types, I can see why a C++ programmer is impressed with such constructs, but it's really underwhelming for an OCaml/Haskell programmer. What's…

  11. comment
    Comment #42601248

    Bevy has support for dynamically described components and systems. Their main use-case is scripting language support. Can't agree that they insist on single language approach.

  12. comment
    Comment #39377786

    > Lack of access to the C libraries. Isn't CFFI enough for that?

  13. comment
    Comment #39377642

    > There is nothing compelling about the language to people who aren't already Lisp people. CL is expression based (like Rust, unlike other mainstream languages I've seen), has a co…

  14. comment
    Comment #37855657

    I would recommend trying Lean4 because I think it is better suited to programming. Lean has Rust-like toolchain manager; a build system (cf. `.agda-lib`); much more developed tacti…

  15. comment
    Comment #37435534

    How can the audience of a general-purpose programming language not be "programmers"?

  16. comment
    Comment #36112835

    Lean4 is intended to be both, while Idris is more on the programming side and Agda - one the proof side. Maybe I'm mistaken about Idris, but Agda really doesn't prioritize programm…

  17. comment
    Comment #36112295

    Lean is currently moving to the 4th iteration which is the first intended to be a general-purpose programming language. It "is currently being released as milestone releases toward…

  18. comment
    Comment #36112207

    Big: * tactics (proof scripts are a lot easier than manual proving) * syntax extensibility (Racket-like, supports custom elaboration/delaboration) * mathlib (library of formalized …

  19. comment
    Comment #34136203

    > that can accept any number of functions So, `(a -> b) -> (b -> c) -> (c -> d) -> ... -> a -> z`.

  20. comment
    Comment #33791269

    I've seen an advice to not use equality on floats, and instead use something like |x-y|<e. Probably translates to constructive reals as it needs to compute only some part of the nu…

  21. comment
    Comment #33530694

    Reversing bytes sounds like reversing their bit orders to me.

  22. comment
    Comment #33440833

    > I kept waiting for more examples for why we need FP Dependent types, allow a lot more type safety (ex. shader program type parametrized by description of its uniform variables, g…

  23. comment
    Comment #32852732

    Small core is easier to verify.

  24. comment
    Comment #31882426

    Dependent types are types that depend on values, possibly runtime values. In C# types can only depend on other types when using generics: List depends on T. In C++ there is std::ar…

  25. comment
    Comment #31391527

    template concept has_foo = requires(T x){ { x.foo } -> std::same_as ; }; template int get_foo(T x){...} // or template requires has_foo void f(T x){...} // or even void f(has_foo a…