tromp
Joined 13 years ago
Joined 13 years ago
I did the same for my performant implementation of pure functional programming language BLC/BLC2, which in 400+ lines contains a graph reduction engine for combinatory logic, to which the lambda calculus programs are converted by Kiselyov's bracket abstraction algorithm.
With taproot (P2TR), scripts are optional, and outputs can be based solely on Schnorr signatures.
char*M,A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf(M="%d",&C);
-- E; J[ E] =T
[E ]= E) printf("._"); for(;(A-=Z=!Z) || (printf("\n|"
) , A = 39 ,C --
) ; Z || printf (M ))M[Z]=Z[A-(E =A[J-Z])&&!C
& A == T[ A]
|6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z]=A,"_.":" |"];}
[1] https://tromp.github.io/pearls.html#mazeA drag coefficient of 0.158 is not quite setting a record. Aptera's road-legal car has a coefficient of only 0.13, while Hyundai achieved a drag coefficient of 0.144 with the Aero Challenge concept car [1] (but it's not clear whether that vehicle is road-legal, or even what it looks like).
How pristine is that when the last supported Android version is 10?
> This phone is sometimes necessary. Like when a known bug in /e/OS prevented my banking app from working for several months.
This surprises me. Until very recently I was using a phone I bought in 2017, which similarly supports no Android beyond version 10.
Since early this year, my bank app started insisting that I upgrade my Android to 11 or higher, and hence stopped working.
More recently, Gmail also started insisting I upgrade Android. As a result I had to get a new phone, which in many ways is worse than my old phone (still 7.2" but worse aspect ratio, no more full fingerprint sensor and much worse battery life).
So the idea of keeping an old phone around in order to bank seems rather odd to me.
> What this does not show
> The attack above depends on conditions that ordinary Bitcoin keys do not meet.
> Ordinary Bitcoin keys are not affected by any of this
> A properly generated private key is spread across roughly 2 to the power of 256 possibilities. The square root of that is 2 to the power of 128, which is not attackable by anyone, with any budget, ever.
Abstraction (λx.e) and application (f a) are missing, although the let construct "let x = e1 in e2" is equivalent to their combination ((λx.e2) e1).
The paper has few details on the higher-level specification language in which users specify desired behaviour:
> Specification Language. Specifications are written as relations between input and output ports, expressed using linear expressions. On their own, specifications are not λ _λ programs. It is the job of the synthesizer to find λ _λ programs that realize a given specification. For example, a simple switching behavior can be specified as output[i] = input[j], while a 2x2 AllReduce operation can be written as output[1] = (input[1] + input[2])/sqrt(2) and output[2]= (input[1] - input[2])/sqrt(2).
Homepage https://tromp.github.io/