Tweets
- Tweets, current page.
- Tweets & replies
- Media
You blocked @wcrichton
Are you sure you want to view these Tweets? Viewing Tweets won't unblock @wcrichton
-
Pinned Tweet
The more I read, the more it seems like everything I know about education and instruction is completely wrong.pic.twitter.com/ayYbyj9lSj
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
The language's semantics are carefully designed to enable the authoring of both web elements (ie React objects that can be interactive) and strings (eg TeX, Penrose, to pass to an external component).
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Scribble-inspired notation can be used at the top-level, but also nested inside a Javascript expression. Imagine a template string, but on steroids.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Next version of Nota coming soon: new syntax + web editor! Write without burden, program without limitations. Mix up your prose by adding higher-order functions.pic.twitter.com/vF532yd3Sw
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Too many brands on Twitter, not enough static analysis toolshttps://twitter.com/creduce/status/1470099794609655808 …
Thanks. Twitter will use this to make your timeline better. UndoUndo -
trait FooExt {fn bar(&self) -> Vec<u32>} => trait FooExt { type Bar<'a>: Iterator<Item=u32> where Self: 'a; fn bar(&self) -> Self::Bar<'_>; } impl FooExt for Foo { type Bar<'a> where Self: 'a = impl Iterator<Item=u32>; fn bar(&self) -> Self::Bar<'_> { ... } }
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
The lack of `impl Trait` in Rust trait definitions is a frustrating limitation. Eg I want my trait method to return an iterator instead of a vector, but don't want to specify the iterator type. You can overcome it, but it's gross and requires two nightly features:
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Using fold instead of for-loop is annoying. But one benefit: flip a character to unroll the state of the fold. q) ((); 0) check/ "()({)" "({" 3 q) ((); 0) check\ "()({)" ,"(" 0 "" 0 ,"(" 0 "({" 0 "({" 3
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Will Crichton Retweeted
Block chains won’t bring us the *really* interesting next web. CRDTs will. Much less sexy, since they don’t involve money. Much less momentum and ecosystem around them. Most applications are in toy stages. I’ve been working with them for 2.5y now and couldn’t be more bullish.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Q's combinators are interesting. Especially overloading on arity: f' = map f x f' y = map f (zip x y) x f/: y = map (f x) y x f\: y = map (λ x. f x y) x f/ (unary) = fix λ g. λ y. if f y = y then y else g (f y) f/ (binary) = reduce f x f/ y = fold f x y x f\ y = scan f x y
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Some cool properties: * A node's ancestors = backward slice (and descendants = forward). * Weakly connected components are independent computations, so they could be e.g. parallelized or trivially factored. * Any topological sort is a valid reordering of the program.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Graph theoreticians: let G be a 𝘥𝘦𝘤𝘪𝘥𝘶𝘰𝘶𝘴 𝘵𝘳𝘦𝘦 (maximum out-degree of 1 in the winter)
Thanks. Twitter will use this to make your timeline better. UndoUndo -
Mild take: if you ever feel like learning an esoteric language with a dizzying array of symbols and vocabulary, Q is probably a better choice than Haskell.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
I'm doing Advent of Code this year to learn Q. For bewildering one-liners, you can follow along here:https://github.com/willcrichton/aoc2021 …
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Also "underexplored" isn't quite right. The web is rife with templating languages, which are string-first PLs. But they all suck, except for JSX.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Scribble is by far the best example of this design, but I've found it hard to directly translate its concepts into JS / React. Eg sometimes you want to generate a string (say to pass to KaTeX or Penrose), sometimes you want to generate a React element.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Requirements: * No quotes or escapes -- strings are the default, not the exception. * Allow transition between string and code dialects with as few characters as possible, and with arbitrary nesting. * Should be easy to define non-string data structures: lists, classes, lambdas
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
String-first programming languages seem to be a really interesting and underexplored design space. I want something halfway between JSX and Scribble, but not MDX.
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo -
Did you know that there's a "copy" event that can disable copying, even from selected text? Did you know that getEventListeners ONLY WORKS WHEN RUN IN THE DEV TOOLS???
Show this threadThanks. Twitter will use this to make your timeline better. UndoUndo
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
cognitive psychology. PhD