Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 19 14:08

    yairchu on master

    Stdlib exec function returns st… (compare)

  • May 19 13:43

    yairchu on master

    Stdlib current-work-dir action (compare)

  • May 19 13:33

    yairchu on master

    Oops accidentally broke running… (compare)

  • May 19 13:26

    yairchu on master

    Bring back export to JS feature… (compare)

  • May 19 12:36

    yairchu on master

    Dead code police using weeder … (compare)

  • May 19 12:11

    yairchu on master

    Remove dead code (compare)

  • May 19 12:03

    yairchu on master

    Remove import-repl-from-json co… (compare)

  • May 19 08:36

    yairchu on master

    Fix JS deprecation warning (compare)

  • May 18 19:34

    Peaker on master

    New repl look (compare)

  • May 18 18:34

    yairchu on master

    Goto-definition index doesn't i… (compare)

  • May 18 16:57

    yairchu on master

    No layout change when navigatin… (compare)

  • May 18 13:55

    yairchu on master

    Plain definitions have result i… (compare)

  • May 18 13:48

    yairchu on master

    Now that navigating to repl cho… (compare)

  • May 18 13:27

    yairchu on master

    add comment (compare)

  • May 18 12:58

    Peaker on wippy

    WIPPY (compare)

  • May 18 12:42

    Peaker on master

    Geometric nav to repl directs c… (compare)

  • May 18 12:36

    Peaker on master

    HoleEdit: Remove trailing white… (compare)

  • May 18 12:32

    yairchu on master

    Hole: Fix typing chars erasing … (compare)

  • May 18 12:28

    Peaker on master

    Disallow empty name for new tag Repl directs cursor to tag hole… (compare)

  • May 18 12:24

    Peaker on master

    Remove Lamdu.Version Rename: Name.isValid{=> Search}… (compare)

Minghao Liu
@molikto
I've started a little bit with the project, it supports a generic syntax for specifying grammars. here it's the own grammar specified in it's own grammar... it has auto-layout. but I think I have some design problems reguarding baseline alignment when expressions have different hight
I don't know if anyone interested in collaborating on this project...
Yair Chuchem
@yairchu
@molikto if you want to reach a wider structural editing audience you can try in https://www.reddit.com/r/nosyntax/
Minghao Liu
@molikto
Thanks!
Janus Troelsen
@ysangkok
@yairchu is it possible to define your own types in lamdu now?
Vladimir Gordeev
@vladimir-vg
Hey everyone! Do I understand correctly that Lamdu stores source code as structured data, in database?
Yair Chuchem
@yairchu
@vladimir-vg Yes
@ysangkok sorry for the late reply, I missed the notification. Unfortunately we haven't yet implemented editing of nominal types. Did a lot of prep to it so it will come :) You can still import them via a json file and can still of course use structural types
Janus Troelsen
@ysangkok
@yairchu nice, i am very excited :) lamdu is such a great project, and you have done great work so far
Fritz Feger
@fritzfeger
Hi there, I just stumbled upon Lamdu and played around with it - great work! It's quite in here... still at it?
As for the relationship between Lamdu and Haskell: do you plan to build some kind of interoparability? Like using Haskell libraries in Lamdu, or transpiling Lamdu to Haskell, "export as Haskell"? What do you think of the latter idea, i.e. of Lamdu as a tool to develop Haskell?
Yair Chuchem
@yairchu
Hi @fritzfeger ! It is indeed somewhat quiet.
2020 has some unexpected turns and both me and Eyal needed to spend time on other things.. But I'm back to spending time on Lamdu since recently!
Yair Chuchem
@yairchu
I'm not sure about interop with Haskell specifically as an early priority, we'll probably want interop with C first
Haskell comes with a set of complications with pervasive lazyness, whereas we choose to go with explicit lazyness
janus.troelsen
@janus.troelsen:matrix.org
[m]
what are nominal types? are they product types, like records?
janus.troelsen
@janus.troelsen:matrix.org
[m]
Eyal Lotem
@Peaker

A new Lamdu release!

https://github.com/lamdu/lamdu/releases/tag/v0.8.0

Along with a new video:

https://www.youtube.com/watch?v=2yGHk9XXOBE

Any feedback welcome :-)

boogerlad
@boogerlad:matrix.org
[m]
I'm really impressed with lamdu. Does this project accept donations?
boogerlad
@boogerlad:matrix.org
[m]
and this might be a stupid question. How can I have an else if?
boogerlad
@boogerlad:matrix.org
[m]
I'd love for a tutorial on lists. writing a recursive fibonacci sequence was very easy, but iteratively proved to be quite a challenge due to lack of help information
Yair Chuchem
@yairchu
I'll start with the easier questions :)

and this might be a stupid question. How can I have an else if?

If you write an "if" and at the "else" clause you write another "if", it just becomes "else if" or in shorthand "elif".

1 reply
Lamdu has a concept of "projectional syntax sugar". This means that the few syntax sugars we adopted, such as "if" actually being syntax sugar for a case pattern match over booleans - these are always displayed in sugared form when the code matches the pattern. So "elif" is just another sugar for an "if" in the else clause.
Yair Chuchem
@yairchu
Screen Shot 2021-11-28 at 22.13.32.png

I'd love for a tutorial on lists. writing a recursive fibonacci sequence was very easy, but iteratively proved to be quite a challenge due to lack of help information

Above is my favorite way of writing fibonacci, using combinators like "iterate" and "map".
As for lists tutorial, you can have a look at how "iterate" itself constructs list or how "map" via "foldLazy" inspects them.

List is a nominal data type, and if you built a recent Lamdu from source, hitting "enter" on its constructor "List" or unwrap ".List" would open the pane for its type declaration to show how it's defined (note that actually editing it in the pane is not yet implemented but coming soon)

Yair Chuchem
@yairchu

I'm really impressed with lamdu. Does this project accept donations?

We haven't set up any way of accepting donations yet. I guess we should look into setting one up :)

Yair Chuchem
@yairchu
And thanks! :)
boogerlad
@boogerlad:matrix.org
[m]
as for donations, I highly recommend accepting Monero. I'm not trying to shill / advertise for cryptocurrency, but I've found that its privacy, speed and ease of use to be quite good. Let me know if you need any help setting it up.
how much money is required to put both you and Eyal working on this full time?
boogerlad
@boogerlad:matrix.org
[m]
How does lamdu handle code from others? is there some sort of import or module system? Seeing that lamdu has abandoned traditional text files, perhaps there's something more optimal than the traditional file hierarchy and navigation via paths
boogerlad
@boogerlad:matrix.org
[m]
:point_up: Edit: does lamdu have any plans to become a system language? It would be very interesting to create an operating system out of lamdu, since the REPL is so much more powerful than everything else I've seen. I'd like lamdu to take on rust / c
1 reply
boogerlad
@boogerlad:matrix.org
[m]
I saw that lamdu is incompatible with current version control systems. Have you guys heard of pijul.org? There are definitely some interesting ideas that get rid of git footguns, so when the time comes to implement a vcs for lamdu, hopefully the same mistakes won't be repeated
1 reply
boogerlad
@boogerlad:matrix.org
[m]
some more questions (stop me if I'm getting annoying): how do comments work? I'd love to see how a large program is organized.
how can I process a string character by character, or an array element by element? I'm well aware if it was a list, I could fold
3 replies
boogerlad
@boogerlad:matrix.org
[m]
last question for now: https://www.youtube.com/watch?v=_ZXAw6ZaThY
how did he "hide" the sub definitions? I think that's a fantastic way to see only the "relevant" information if you're looking at code! right now when I'm playing with lamdu, the list of sub definitions keeps growing and then I'm left with a wall of text
1 reply
Eyal Lotem
@Peaker
image.png

Hey booger, first of all, thanks for all the feedback! :-)

Code exchange and collaboration in Lamdu are currently very primitive as they are part of structural revision control, which we have not yet seriously tackled.

But it is possible -- you can export a JSON file from any definition (or the entire world) as pasted in the image above

image.png
These are visible when on a definition, inside the help menu
Eyal Lotem
@Peaker
About processing strings or bytes, currently iirc you can convert to/from a list, though we might want to enrich the stdlib for these cases. Adding stuff into the RTS/lib isn't hard :) would love contributions there too
boogerlad
@boogerlad:matrix.org
[m]
thank you both for your responses! I played around a bit more, and I could convert arrays to lists, but I didn't have any luck with strings as of 0.8.0 on macos.
Eyal Lotem
@Peaker
image.png
Eyal Lotem
@Peaker
@boogerlad:matrix.org you can import the rot.json by dragging&dropping the file into lamdu's window or by using lamdu import rot.json
Eyal Lotem
@Peaker
btw, if you're using Spanish, you can add Spanish as a new language to Lamdu, and translate the subset of tags that you're using to Spanish, and the keywords, if you'd like (in data/languages/english.json, can create a spanish.json)
Yair Chuchem
@yairchu

how much money is required to put both you and Eyal working on this full time?

In the near future we both have other obligations, for Eyal at Weka.IO and for myself at Sound Radix.
I personally do intend to spend more time working on Lamdu in the next year, regardless of funding. Hopefully I'll succeed devoting most of my time on Lamdu this year :)
But given generous donations we could try to expand the team with more developers who are working full time.

Tiziano Santoro
@tiziano88
Hi all! I am Tiziano, I have been playing around with ideas similar to Lamdu, though in a more generalised fashion; I have a very rough repo at https://github.com/tiziano88/linc and a (mostly unintelligible) demo at https://tiziano88.github.io/linc/ . I am mostly interested in the representation and manipulation of abstract trees, that may work for existing AST schemas and also data structures, so my goal is not to invent a new language. Anyways, looking forward to learning more about Lamdu and related projects here! [-> thread for any follow-up discussion so we don't spam the channel]
2 replies
Yair Chuchem
@yairchu

Lamdu now accepts GitHub sponsors and donations on Open Collective!

@boogerlad:matrix.org if you still want to sponsor Lamdu there's a lot we can do with funding! Depending on the amounts, from doing Summer-of-Code like initiatives to hiring full-time developers :)

janus.troelsen
@janus.troelsen:matrix.org
[m]
Nice, I just signed up :) You might get more donors if you provide some kind of perk. E.g. Csaba offers to list donors on a page, people who donate more are listed higher.
Eyal Lotem
@Peaker
Thanks! That sounds like a nice idea :-)
🇺🇦Oleksandr Kryvonos🇺🇦
@o_kryvonos_twitter
hi, I am developing similar idea in my project, but here I will contribute Ukrainian translation to function names, I am looking forward to this small contribution
Yair Chuchem
@yairchu

Thank you very much Oleksandr! And also I really hope things improve in your country!

We will also extract the words database to a new repository so it can be used by your project and any projectional editor project wishing to support localisations