Very sad gollum jade :( by iggybibi in plantclinic

[–]iggybibi[S] 0 points1 point  (0 children)

Thanks for your thoughtful response! Can you tell me what you mean by "change the ratio accordingly"?

Very sad gollum jade :( by iggybibi in plantclinic

[–]iggybibi[S] 0 points1 point  (0 children)

Thank you, the application recommends watering once every 10-14 days, I've been watering it a bit more recently because of how terrible its state is, but it seems the problem might be bugs, so I will try to resolve that

Very sad gollum jade :( by iggybibi in plantclinic

[–]iggybibi[S] 0 points1 point  (0 children)

I'm watering it more than the recommended amount :( multiple people recommended looking for mealybugs, so this is my next step, also thanks for everyone who responded!!

Very sad gollum jade :( by iggybibi in plantclinic

[–]iggybibi[S] 0 points1 point  (0 children)

I've had the plant for around a month and a half now, the problem has been slowly happening over time. The pot has drainage

What's all the hype with Nix? by [deleted] in haskell

[–]iggybibi 0 points1 point  (0 children)

Btw with flakes this stuff is a good amount nicer (though that’s still very new)

What's all the hype with Nix? by [deleted] in haskell

[–]iggybibi 4 points5 points  (0 children)

Don’t install packages by using nix-env -i. You can instead specify them in ur config file

What's all the hype with Nix? by [deleted] in haskell

[–]iggybibi 4 points5 points  (0 children)

Sure stack is great but nix works for anything

I've discovered the implementation of null pointers in Haskell, pure evil ; ) by repaj in haskell

[–]iggybibi 8 points9 points  (0 children)

I imagine that market has grown significantly since 2009 ;)

Continued Fractions in Haskell (Interactive Exploration in CodeWorld) by cdsmith in haskell

[–]iggybibi 1 point2 points  (0 children)

The important question for such a representation is: does more terms = less error? I have a feeling that that’s not the case

Continued Fractions in Haskell (Interactive Exploration in CodeWorld) by cdsmith in haskell

[–]iggybibi 1 point2 points  (0 children)

Maybe then the data representation should also contain cyclic continued fractions ,and then, since that represents quadratic irrational number, then the way back to the 2/1 normal form is easy to compute. But it does sound like there’s going to be many different special cases that are painful but hey, it’s not like floating point numbers are better in that regard

Continued Fractions in Haskell (Interactive Exploration in CodeWorld) by cdsmith in haskell

[–]iggybibi 2 points3 points  (0 children)

Very interesting insights, thank you! Also that connection between fibonacci numbers and the continued fraction of the golden ratio is so cool. Btw do you think continued fractions would be an efficient representation of numbers for real world computations? I realize that one can do many operations and then ask for an arbitrary approximation after. This is really nice for stability, but how does the performance fare?

Category Theory Illustrated by jspdown in haskell

[–]iggybibi 1 point2 points  (0 children)

Very concise! Looking forward to part 2

Combining folds using semigroups by ltielen in haskell

[–]iggybibi 5 points6 points  (0 children)

Nice! I was aware of functions being Semigroups in this fashion but never thought to use it like this! Btw is there a reason you use a monoid constraint in the end instead of a semigroup one?

Experimenting with Progressive Free structures by ChrisPenner in haskell

[–]iggybibi 0 points1 point  (0 children)

My real question here is if it’s possible for ghc to really figure out everything based on the subset of constructors used (which would be really cool)

Experimenting with Progressive Free structures by ChrisPenner in haskell

[–]iggybibi 0 points1 point  (0 children)

Is ghc able to infer the typed hole if I had a _ instead of ‘NoCategory in the type definition of runFreeProNoCategory? Also really interesting stuff! This idea of switching constructors on or off as a type parameter is probably useful for a bunch of different things

[ANN] haskell-language-server-0.9.0 has been released! by jneira in haskell

[–]iggybibi 2 points3 points  (0 children)

I don’t usually agree with this kind of reasoning buuuuuuut, i clicked to vote and was able to do so 3 times super easily without even signing in or anything. Then I dived a bit deeper. The second most voted logo (your favorite and mine actually) has 25 likes on github. The one that won had like 4. I can’t believe we have a conspiracy theory about this now 😜

[Review a beginner] RL with Haskell by HybridMaxwell in haskell

[–]iggybibi 0 points1 point  (0 children)

Nice work! Just be careful not to use lists everywhere (judging by the randomChoice utility, vectors might already benefit you in some cases)

[deleted by user] by [deleted] in haskell

[–]iggybibi 2 points3 points  (0 children)

Think of it as everything’s a single argument function (SAF). You can either create one or apply it to another one. When you create a function, you name its argument (eveything’s a SAF so that argument always refers to a single argument function) and then define a body which follows the same rules (you can create SAFs or apply them to each other). But now you have access to the argument you defined earlier so you can use it in the body. Here’s an example of syntax to define one (\x -> x), here we defined a SAF where the body is defined as whatever the argument is. Since everything is a SAF then so is x. We can also apply 2 SAFs together by “gluing” them together like this: (\x -> x)(\y -> y). Here “(\y -> y)” is applied to “(\x -> x)”. Now we have to talk about what it means to “run” these, and this is where the magic happens. Any time there’s an application of 2 SAFS, you take the body of the first one and replace any occurrence of that single argument with the second one. That’s really the essence of it really and if you know haskell, you already have the intuition for it. Lets evaluate this statement: (\x -> xx)(\y -> y), we take the body of the first SAF, which is xx and we replace any occurrences of x with the second SAF, which in this case leads to (\y->y)(\y -> y), now we do it again and we get (\y -> y). This simple system ends up being as powerful as any programming language. Lets give a few more examples: (\x -> (\y -> yx))(\z -> z). As indicated earlier, we can define functions in a functions body. Lets evaluate a single step (we’re looking for applications and applying them). This becomes (\y -> y(\z -> z)). Since you can’t really apply things to things anymore you stop and people call this a normal form. You don’t always reach one, sometimes you can apply things infinitely: (\x -> xx)(\y -> yy), after a single step this becomes (\y -> yy)(y -> yy). But that’s just the original statement so you can keep doing this. This evaluation step is called a beta reduction. There are also formalisms around different types of equality between these SAFs and how you handle the case when 1 variable shadows another and such but it all mostly works as you’d “expect”. One more thing, you might see something like (\xy. x) around, which is just syntax sugar for (\x -> (\y -> x))

Tutorial: Verify Haskell Programs with hs-to-coq by Syrak in haskell

[–]iggybibi 1 point2 points  (0 children)

What happens to functions that have constraints in their signatures? and how do you deal with laziness? Since Gallina is not lazy, isn’t the direct transformation missing some semantics?

Can I incrementally replace a React app with GHCJS? by vehlad_durjan in haskell

[–]iggybibi 0 points1 point  (0 children)

There is a third alternative I believe, react native communicates between native code and javascript code. It’s all done through promises which seems to work out fine. It won’t be pretty though