HNHacker News
TopNewBestAskShowJobs

sideeffffect

307 karma · joined January 5, 2019

submissionscomments
sideeffffect··on WebAssembly Interface Types: Interoperate with All the Things
> statement that the CLR ties you to C# is not justified

it is. F# developers are stuck with the language progress and can't (or don't want to) add big and important features like Type Classes or Higher-kinded Types, until C# adds them first

https://github.com/fsharp/fslang-suggestions/issues/243

sideeffffect··on Project Mu – A modular UEFI environment for building modern devices
there's https://yabits.github.io/ , a coreboot payload implementing UEFI

or you can use https://www.linuxboot.org/ as a coreboot payload

sideeffffect··on Lisp is not based on the Lambda Calculus
Ron presented this at Curry On 2018

Ron Pressler - Finite of Sense and Infinite of Thought: A History of Computation, Logic and Algebra

https://www.youtube.com/watch?v=2oNmR0q1uA0

sideeffffect··on HarmonyOS is Huawei’s Android alternative for smartphones and smart home devices
if it's based on seL4, which is licensed undel GPLv2, that we should be able to get our hands on the source code! yay!
sideeffffect··on IPFS Project Roadmap
there's been some effort

https://github.com/NixOS/nix/issues/859

sideeffffect··on IPFS Project Roadmap
also, Fury, the new Scala build tool by Jon Pretty, uses IPFS to distribute builds/build definitions

https://fury.build/

https://github.com/propensive/fury

https://youtu.be/Xti2I2Csww8?t=1620

it seems like people working on package management/distribution related things LOVE the idea of IPFS

sideeffffect··on IPFS Project Roadmap
https://github.com/ipfs/go-ipfs-chunker

> go-ipfs-chunker provides the Splitter interface. IPFS splitters read data from a reader an create "chunks". These chunks are used to build the ipfs DAGs (Merkle Tree) and are the base unit to obtain the sums that ipfs uses to address content.

> The package provides a SizeSplitter which creates chunks of equal size and it is used by default in most cases, and a rabin fingerprint chunker. This chunker will attempt to split data in a way that the resulting blocks are the same when the data has repetitive patterns, thus optimizing the resulting DAGs.

I think they should use the rolling hash based chunking by default

https://github.com/ipfs/go-ipfs-chunker/issues/13

sideeffffect··on IPFS Project Roadmap
It's a bit sad, that Dhall (programmable configuration language for YAML & co.) used to use IPFS for its source/packages, but stopped, because of reliability :( (I'm wondering if there are/were others?)

> Early on in the language history we used IPFS to distribute the Dhall Prelude, but due to reliability issues we’ve switched to using GitHub for hosting Dhall code.

http://www.haskellforall.com/2019/01/dhall-year-in-review-20...

https://github.com/dhall-lang/dhall-lang/issues/162

I wish IPFS the best, because at least in theory this seems like a perfect use case

sideeffffect··on Lambda Cube
I personally hope that I will eventually find the time to read Practical Foundations for Programming Languages by Robert Harper

https://www.cs.cmu.edu/~rwh/pfpl/index.html

direct link to a preview of the 2nd edition:

https://www.cs.cmu.edu/~rwh/pfpl/2nded.pdf

direct link to an unabridged version of the 1st edition:

http://profs.sci.univr.it/~merro/files/harper.pdf

sideeffffect··on When FP? And When OOP? (2013)
The new module system for Haskell (GHC, to be precise)

https://ghc.haskell.org/trac/ghc/wiki/Backpack

https://plv.mpi-sws.org/backpack/backpack-poster.pdf

sideeffffect··on For the Love of Pipes
tiny clarification: Function composition is just function composition. Pipes are a different syntax for function application.

see https://news.ycombinator.com/item?id=18971451

sideeffffect··on For the Love of Pipes
maybe I'm being overly pedantic, but people seem to be confused about this:

the pipes in your typical functional language (`|>`) is not a form of function composition, like

```

f >> g === x -> g(f(x))

```

but function application, like

```

f x |> g === g(f(x))

x |> f |> g // also works, has the same meaning

f |> g // just doesn't work, sorry :(

```

← PreviousPage 6 of 6