handsonscala
Crafting Interpreters
Our great sponsors
handsonscala | Crafting Interpreters | |
---|---|---|
18 | 45 | |
648 | 8,103 | |
1.7% | - | |
0.0 | 0.0 | |
5 months ago | 18 days ago | |
TSQL | HTML | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
handsonscala
-
Is Li Haoyi libs standard throught scala useres?
To dive into the lihaoyi ecosystem, I recommend the book https://www.handsonscala.com/ by lihaoyi himself.
-
Contrary to popular belief, Scala is actually a quite small and simple language
I recommend people go through Hands-on Scala, by Li Haoyi, a fantastic developer in the Scala community.
-
Good book for non-beginners in programming
The best practical book around Scala language features is https://www.handsonscala.com/
-
Starting with scala
You can have a look at https://www.handsonscala.com/ and see if that's for you!
-
Getting into Scala from Python
his book, https://www.handsonscala.com/
-
Suggest me resources to learn Scala.
Hands-on Scala Programming
-
How is Databricks' style guide viewed nowadays?
If you like Li Haoyi's style of Scala, his book is a good place to start (it's longer than just a Style guide, of course): https://www.handsonscala.com/
-
Algorithms and Data Structures in Scala;
is there a great resource, book or library on classic Algorithms and Data Structures in Scala, e.g. similar in scope and quality to Sedgewick Algorithms in Java https://algs4.cs.princeton.edu/home/ I found a very helpful section on algorithms implementation in /u/lihaoyi superb Hand-On Scala Programming book , but unfortunately it's only a few pages (p.107-121). And most other books provide algorithms just an illustration for some neat language feature. The thing is, to get a job as Scala developer these days (in competitive firms) one needs to be a competitive programmer, master of Leetcode, and Scala doesn't seem to have strong ecosystem in that regard as Java, Python or C++. Edit: in DIY spirit and as a learning exercise i'm thinking of translating Sedgewick Algorithms from Java to idiomatic functional Scala, if anyone wants to join this effort or aware of similar ones please let me know Edit 2 (in regards to comments on 'reinventing the wheel' below): if Scala is so great as a language and functional programming flagship, where are all the libraries of functionally implemented algorithms replacing conventional CLRS style imperative/mutable implementations?
-
Need suggestions on where and how I can practice functional programming with Scala or in general programming in Scala. New to Scala.
handsonscala is a great read for programming in general using scala. Especially if you're the practical kind of learner.
-
Scala at Scale at Databricks
I will toot the author's horn for him. He has a great series of Scala posts on his blog [1] and his book Hands-On Scala Programming [2] is a great introduction to building real applications with Scala so that any experienced developer can understand and extend them.
I work at a small company that has been using Scala for 7 years. Some of the prior employees clearly enjoyed playing with advanced language features and writing libraries for the most general possible case even when that made it hard to understand how they were used for the 2 actual cases we needed to address in our application code. Akka, Cats, and Shapeless were all over the place.
Those earlier employees have churned off to other places and I have successively simplified the code they wrote that is still useful, while encouraging the use of no more language power than necessary in new development. Hands-On Scala Programming is the book I give new hires as a language introduction that shows the sort of style to be preferred. It's much more like super-powered Python than like Haskell.
I have written C, JavaScript, Python, and Scala for money. When I started on Scala I had never written Java nor used any JVM language. I have come to really appreciate the rich ecosystem of JVM libraries, the instrumentation and profiling tools I get, and many aspects of the Scala language and standard library. I love Scala's collections and miss their power and ease when I'm writing Python. (Which I still do for certain scripting tasks and for accessing Python-ecosystem libraries.)
[1] https://www.lihaoyi.com/
[2] https://www.handsonscala.com/
Crafting Interpreters
- Crafting Interpreters
-
The Top 10 GitHub Repositories Making Waves 🌊📊
Build an Interpreter (Chapter 14 on is written in C)
-
Writing a Debugger from Scratch: Breakpoints
I’m guessing you’ll have to work with the scopes in the resolver:
https://github.com/munificent/craftinginterpreters/blob/mast...
-
loxcraft: a compiler, language server, and online playground for the Lox programming language
Better open an issue/request wiki edit at https://github.com/munificent/craftinginterpreters/wiki/Lox-implementations
- Gigachad Ken Thomson.
-
Show HN: Yaksha Programming Language
I'm late to the party, but I want to say thank you for sharing this. It's inspiring to look at how much you've built and (hopefully) enjoyed the process of building! I'm loving everything -- your site, your language design, your docs, your builtin libraries, your dev tools. Beyond impressive. People like you are the ones who make HN one of my best places on the internet.
For context on where I'm coming from, about two weeks ago I picked up Crafting Interpreters [1] for fun. I'm finding your clear-yet-concise Compiler internals [2] to be particularly compelling reading, and jumping back and forth between those "how this all works" docs and the live example of this language you actually built do a WASM-compiled tree-blowing-in-the-wind animation is just... just wow. So freaking cool!
I also enjoyed reading the comment thread that inspired you to start on Yaksha and seeing how this project has a wholesome start as inspiration-by-programming-hero. I hope you recognize that a few years later you've now ascended from inspiree to inspirer. I also hope you're still having tons of fun building out Yaksha!
[1] https://www.craftinginterpreters.com/
[2] https://yakshalang.github.io/documentation.html#compiler-int...
- Keeping track of returned and break-ed values between code blocks
-
How do you start your own programming language?
There are books which will talk you through the process. Crafting Interpreters is highly spoken of; I used Writing an Interpreter in Go, because I like Go. Then there's Compilers: Principles, Techniques, and Tools (the "Dragon Book"). This is considered heavy, but a classic, it's been around since '86.
-
Designing a new language
I cannot recommend Crafting Interpreters by Robert Nystrom enough, it covers a lot of the stuff you need to know, completely for free.
-
A roadmap to design programming languages
Crafting Interpreters is a fun primer on language design. It has a complete roadmap to build a fairly simple language, twice. There are some topics it won't touch on, like static type systems, but it provides a great introduction so that you can start tinkering and learn by doing.
What are some alternatives?
WKHTMLToPDF - Convert HTML to PDF using Webkit (QtWebKit)
git-internals-pdf - PDF on Git Internals
athenapdf - Drop-in replacement for wkhtmltopdf built on Go, Electron and Docker
You-Dont-Know-JS - A book series on JavaScript. @YDKJS on twitter.
jsPDF - Client-side JavaScript PDF generation for everyone.
tinyrenderer - A brief computer graphics / rendering course
algs4 - Algorithms in C# ported from the book "Algorithms 4th Edition".
paip-lisp - Lisp code for the textbook "Paradigms of Artificial Intelligence Programming"
kwkhtmltopdf - wkhtmltopdf server with transparent drop-in client
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
HexaPDF - Versatile PDF creation and manipulation for Ruby
30-days-of-elixir - A walk through the Elixir language in 30 exercises.