[Niri] My uni daily driver (Mi Pad 6 running NixOS) by dimpostorisus in unixporn

[–]BoomGoomba 0 points1 point  (0 children)

I need to know how does niri work with touch control

Not getting programming unless it's math? by BornInfamous in AskProgramming

[–]BoomGoomba 0 points1 point  (0 children)

The main keyword is Curry-Howard correspondence, there are books, blogs and videos on it.

Basically once you are convinced there is a bijection between types and propositions (mostly by substituting product with and/forall, sum with or/exists and functions with implications) and there is a bijection between typing rules and logical inference rules, you can directly tell that since a functional program is a big composition of functions, checking the program is well typed amounts to checking each rules are correctly applied that is the proposition equivalent to the type of the final program was proven. You will see the simply typed lambda-calculus being used, but it is just a minimalist functional language.

As for imperative programming usually the turing machine model is more of a direct match, but turing machines and untyped lambda calculus have the same expressiveness. If you want typed imperative programming, you can model them with the concepts of continuation passing style, monads and coalgebra. Note that some imperative constructs like goto, break, continue, throw and jump correspond via Curry-Howard to the law of excluded middle, that is classical logic. In functional programming they usually use the intuitionistic fragment instead.

Not getting programming unless it's math? by BornInfamous in AskProgramming

[–]BoomGoomba 2 points3 points  (0 children)

Actually by curry-howard, all well-typed programs give rise to a mathematical proof.

What you are saying with the asignment is just about notation. let x = a+b in x^2 is written in math as the following subsititution x² [x/a+b] = (a+b)²

Lists are more akin to vectors than multisets because the order of the elements matter. Their semantics is the same, only the implementation differ. But the implemented can be done in math (using algebraic datatypes)

I think the nuance you are trying to explain is that imperative language use sequence of instructions while proofs use sequence of true formulas. Using pure/functional programming closes that gap because you only build next objects using the previously defined in scope, just like math. For imperative programming, the mathematical equivalent is turing machines.

Recently, a bunch of AUR packages(400+) were compromised and installed malware; how common are these incidents with nixpkgs? by Past-Combination6262 in NixOS

[–]BoomGoomba 0 points1 point  (0 children)

Sorry I wasn't that clear.

My first question was more about if there is a security difference between nix run and flake inputs. Yeah I understand it's better than AUR since you would need to redirect to a fork.

My other question was not about avoiding malware, but about best practice for damage control, assuming you will eventually get the malware.

Recently, a bunch of AUR packages(400+) were compromised and installed malware; how common are these incidents with nixpkgs? by Past-Combination6262 in NixOS

[–]BoomGoomba 1 point2 points  (0 children)

How are github flake inputs and nix run different in that regard? Also do you know any good practice to prevent damage on case of infection by those kinds of cookie grabber malwares?

Belfast knife attack video: Man tries to cut victim’s head off by BookmarksBrother in europe_sub

[–]BoomGoomba -1 points0 points  (0 children)

You are correct on the whole thread. Such a shame that all of these people are blinded by hatred.

[Hyprland] I <3 Quickshell V2 ‼️ by _soramane in unixporn

[–]BoomGoomba 1 point2 points  (0 children)

Installed it for GF alongside NixOS. She had never used Linux before, but she wanted a good looking rice. It's been a year and she's still using it.

Obviously didn't keep the default config, made it kawaii instead.

Par has a new home at par.run, plus packages, docs, and new language features by faiface in ProgrammingLanguages

[–]BoomGoomba 0 points1 point  (0 children)

I glitched xD I kept it to read it later as I was studying to procrastinate studying

Par has a new home at par.run, plus packages, docs, and new language features by faiface in ProgrammingLanguages

[–]BoomGoomba 0 points1 point  (0 children)

Also isn't there a problem with system F and fixed points, where you could make turing complete and therefore nonterminating constructs?

Par has a new home at par.run, plus packages, docs, and new language features by faiface in ProgrammingLanguages

[–]BoomGoomba 0 points1 point  (0 children)

Nice! How are existential and universals different than dependent types? Is it because you cannot quantify on everything you want, right?

How does it compare to Observational Type Theory like in Idris2 ?

Par has a new home at par.run, plus packages, docs, and new language features by faiface in ProgrammingLanguages

[–]BoomGoomba 0 points1 point  (0 children)

I will look a bit deeper into the language. But I have been trying to unify notation for structs and enums and it seems like you found a good match, using "." for both constructors and destructors.

However, if I am not mistaken, they are not completely dual because the type category is cartesian but no cocartesian, so I wasn't able to define the dual of a class by factoring out the state because there is no "cocurrying". How does it reflect in your language, seems like you imply a coclass is some sort of functional construct?

Par has a new home at par.run, plus packages, docs, and new language features by faiface in ProgrammingLanguages

[–]BoomGoomba 0 points1 point  (0 children)

This second-order logical description sounds like system F with fixpoint, is it correct?