rydel
|
5 years ago
|
on: Phony Targets
That's actually really easy. Your target here is your venv site-packages, while requirements file is the prerequisite. The idea is that your site-packages folder has to be recreated/updated (pip install) when it is older than the requirements file. One thing you have to do is to simply update the directory timestamp each time you add a dependency, because adding a file into a folder does not change the folder timestamp. Having that it would be like
venv/site-packages: requirements.txt
pip install -r $<
touch $@
rydel
|
7 years ago
|
on: Unit Testing React Hooks
It is slightly misleading. One cannot test hooks alone - a component, which uses a hook, must be created to act on them to thest if the component behaves properly with the hook. There is no way to make unit test for a hook.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
The no non-determinism feature is very good example why TCO/TCE is crucial - each time you call a recursive function the state is changing- another stack is created. Therefore the same function which operates on unknown argument size(list, tree) can have different behavior - stack overflow might happen or not and we don’t know when.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
Is I wrote: IMO these language are not fully functional. TCO/TCE is crucial for operations on tree like data structures. And also as I wrote: it all depends in which context we are talking to. Scheme specification makes it clear that TCO/TCE is required. If I am not wrong, F# is the same thing as Scala, but in .Net world(?) - Scala cannot be treaded as clear functional, because it is for JVM which was not designed for functional programming. Surely, many languages can have more or less functional functionalities, but having a subset of properties which defines what is functional, cannot be treated as functional in the full sense.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
Another thing about recursion is that it is really powerful for operation on tree like data structures/objects
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
It depends. As we know, FP is all about not having side effects. Having “for” loop requires to mutate the pointer of given iteration.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
Java class can be functional also. Depends how you look. If a class doesn’t operates on side effects, but keeps the mutation only inside the class, then the class can be defined as functional. But on the method level it might be not.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
There are many definitions of FP. IMHO the “no side effects” is the best one. Even Clojure is functional, but partially IMHO, bc it is for JVM which has not been design for FP. And my definition is not an arbitrary one. This is the most broadly one I think. But when you use same word in different contexts, then the word might have different meaning.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
Yes. I am well aware about that. I look forward to TCO/TCE be supported on other platforms.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
It depends. As we know, FP is all about not having side effects. Having “for” loop requires to mutate the pointer of given iteration.
rydel
|
7 years ago
|
on: Programming Paradigms for Dummies: What Every Programmer Should Know (2009) [pdf]
Having lambda doesn’t mean to be FP. One of the core features missing in Java (JavaScript also) is TCO(tail call optimization)
rydel
|
7 years ago
|
on: Kitty – a fast, featureful, GPU based terminal emulator
Exactly
rydel
|
7 years ago
|
on: Pandoc
Really one of the best tool! Simple to use and makes things done.
rydel
|
7 years ago
|
on: Parcel: Fast, zero configuration web application bundler
This is fine argument. Although I work primarily in JS, I don’t think that this is the tool for any job. There are lot of nice tools in JS out there. While using single tool written in JS it might be not looks slow, but when you must use multiple of them in day to day work it start be a problem.
To sum up: I don’t think JS was designed to build such tools. Although it is very nice language to write in, it is not so efficient in runtime.
rydel
|
8 years ago
|
on: Show HN: Ora.pm – New task management service
IMO it is just some mix of Todoist and Trello
venv/site-packages: requirements.txt pip install -r $< touch $@