-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
new recipes #43
new recipes #43
Conversation
On Thu, Aug 12, 2021 at 8:56 AM Jakub T. Jankiewicz < ***@***.***> wrote:
Few recipes (some from my implementation as-is and some modified). The
best IMHO is sorted? it can be renamed to ordered? using two other
recipes.
I think that my take function, which is part of SRFI-1, is better because
the list should be last otherwise you can curry easily that function. The
same argument I've seen in a video some time ago about Lodash (and
underscore) JavaScript libraries, that had broken arguments and you could
not use curry with them. Because an array was the first argument.
Consider adding a procedure, say flip, that takes a two-argument procedure
and returns a new one with its arguments flipped. Then you can do (flip
take) to get the more easily curried version.
|
I have in fact implementation of this function in my Scheme, I took those functional programming tools, from RambdaJS library that have very well defined API for function manipulation. (define (flip fn)
"(flip fn)
Higher order function that return new function where first two arguments are swapped.
Example:
(define first (curry (flip vector-ref) 0))
(first #(1 2 3))
;; ==> 1"
(typecheck "flip" fn "function")
(lambda (a b . rest)
(apply fn b a rest))) This is how this function works in Ramda, it swap first two arguments. |
SRFI 197: Pipeline Operators solves the problem another way: you type an underscore |
The argument order of |
Will change take to be the same as inn SRFI then. |
@lassik I also added another solution for the map recipe since you can understand the problem in two ways. |
* use take function argument order from SRFI-1 * use loop name in let * add another example to seq-map * use another solution for map-over-sequence of elements recipe
* change name to sublist-map * add suggested example
Make the name different than SRFI to not confuse people
Hi, sorry about the late response. I was busy with other things. I've updated the code. in some cases, I used two implementations, added a link to SRFI, or renamed the function. |
I've changed the What else needs to be done here? |
Recipes 2
Sorry, I'm too slow to respond to these updates in a timely manner. Scheme.org should add content faster, and I should not be a gatekeeper that slows it down. If you don't get a response from anyone within a day, just add what you think is needed. We can always change and revert things later. We use rsync to upload everything to our Linux server. Let me know if you want an account there. |
Now up at https://cookbook.scheme.org/ |
Do you manually copy the files? Maybe it's good idea to setup GitHub action that will upload the files to the server after merge. Let me know if you need help with this. I can setup the workflow, but I need to know how to build the files, and you will need to add SSH key into secrets of the repo, I'm not sure if you can do this on org level. I use scp in one of the project to build website and upload to the server/hosting. You can see similar workflow here (for my personal blog): https://github.com/jcubic/jankiewicz/blob/master/.github/workflows/build.yaml It requires Private SSH key as secret in the repo. But only the person that add the secret can see it, so it's safe for one admin to add the secret and not need to worry that other will see it. |
On Sat, Apr 6, 2024 at 10:05 AM Jakub T. Jankiewicz < ***@***.***> wrote:
Do you manually copy the files? Maybe it's good idea to setup GitHub
action that will upload the files to the server after merge.
No, there's a script
Let me know if you need help with this. I can setup the workflow, but I
need to know how to build the files, and you will need to add SSH key into
secrets of the repo, I'm not sure if you can do this on org level. I use
scp in one of the project to build website and upload to the server/hosting.
I'll leave it up to Lassi to decide whether to do this. Our current
system doesn't require much work. We just have to keep up with the
reviews. I've been trying to keep up, but must have missed some.
… Message ID: ***@***.***>
|
If we can make a Docker container that builds the HTML files (using our Scheme scripts) and uploads them using rsync, that would be ideal IMHO. We can make a dedicated SSH account for CI jobs if it helps. |
It's inevitable. Lisp doesn't attract enough people with the right personality to maintain good websites on a fast schedule. The GNU sites are the only professional-looking Lisp sites. Even Clojure doesn't have a sleek website though many commercial companies are using it. Do-ocracy in all the details has to be the main driver of Scheme.org -- once we have written the charter to ensure that the basic structure and technical choices behind the site enjoy wide agreement. |
On Sat, Apr 6, 2024 at 12:30 PM lassik ***@***.***> wrote:
We just have to keep up with the reviews. I've been trying to keep up, but
must have missed some.
It's inevitable. Lisp doesn't attract enough people with the right
personality to maintain good websites on a fast schedule.
Trying to push Jakub's new entry, I've realized that I haven't been
keeping up at all. I was thinking of Schemedoc when I wrote the above. I
can't even get the www.sh in the cookbook to run ("cannot import from
undefined module: colorize").
… Message ID: ***@***.***>
|
On Sat, Apr 6, 2024 at 12:36 PM Arthur A. Gleckler ***@***.***> wrote:
Trying to push Jakub's new entry, I've realized that I haven't been
keeping up at all. I was thinking of Schemedoc when I wrote the above. I
can't even get the www.sh in the cookbook to run ("cannot import from
undefined module: colorize").
Okay, it's up. I've updated the comments to explain what to do.
… Message ID: ***@***.***>
>
|
Sorry, the outdated installation instructions are my fault. Thank you for fixing them. |
I will create an issue for the workflow, so it's easier to find. |
Few recipes (some from my implementation as-is and some modified). The best IMHO is
sorted?
it can be renamed toordered?
using two other recipes.I think that my
take
function, which is part of SRFI-1, is better because the list should be the last argument, otherwise you can'tcurry
easily that function. The same argument I've seen in a video some time ago about Lodash (and underscore) JavaScript libraries, that had broken arguments and you could not usecurry
with them. Because an array was the first argument.