by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • May 01 16:39
    yairchu commented #111
  • May 01 16:17
    danra edited #111
  • May 01 16:17
    danra opened #111
  • Apr 24 17:55

    yairchu on master

    Fix animation of list evaluatio… (compare)

  • Apr 24 14:01

    yairchu on master

    Oops caching sugar broke switch… (compare)

  • Apr 24 12:57

    yairchu on master

    calculate completions in monad … (compare)

  • Apr 23 17:03

    yairchu on master

    Control.Monad.Once: Execute act… Sugaring result is cached Towa… (compare)

  • Apr 23 16:48

    yairchu on wip-cache

    Control.Monad.Once: Execute act… wip (compare)

  • Apr 23 15:44

    yairchu on wip-cache

    Control.Monad.Once: Execute act… wip (compare)

  • Apr 23 15:39

    yairchu on wip-cache

    wip (compare)

  • Apr 23 14:00

    yairchu on wip-cache

    Control.Monad.Once: Execute act… wip (compare)

  • Apr 23 13:56

    yairchu on master

    inline expr (compare)

  • Apr 23 12:07

    yairchu on master

    GUIMain.make gets mkWorkArea pa… (compare)

  • Apr 23 11:15

    yairchu on wip-cache

    Control.Monad.Once: Execute act… wip (compare)

  • Apr 23 10:17

    yairchu on master

    inline function with bad name … minor cleanups (compare)

  • Apr 23 09:37

    yairchu on wip-cache

    Control.Monad.Once: Execute act… wip (compare)

  • Apr 23 09:20

    yairchu on master

    CodeEdit gets the sugared worka… (compare)

  • Apr 23 09:02

    yairchu on wip-cache

    Control.Monad.Once: Execute act… wip (compare)

  • Apr 22 09:26

    yairchu on wip-cache

    Control.Monad.Once: Execute act… wip (compare)

  • Apr 21 22:10

    yairchu on master

    sugarWorkArea does sugaring wor… (compare)

Chris Gibbs
@atacratic
ok cool, hope you're having a great time!
Yair Chuchem
@yairchu
@atacratic it took a bit of time but the new release is now out! If you could verify on it that the char events indeed work at your setup I'd be grateful :)
Chris Gibbs
@atacratic
@yairchu have tested it - it works! :-)
Edward
@edward309

Hi Yair, Peaker and co,

I've just discovered your work - very compelling! - and after having read your website briefly and opened the IDE, I've got a question for you:
Is there a language specification for Lamdu?

I can see a brief tutorial which I plan to work through, but I'm keen to see the details of how this language differs from Haskell. And whether there's a possibility for interoperability with existing Haskell libraries (which I know sounds like a stretch).

Yair Chuchem
@yairchu
Hi!
One thing to note that the language is not complete yet (for example we don't yet type-classes).
As for main differences from Haskell:
  • Keyword arguments rather than currying is the recommended way to express multiple arguments to a function (which is just a syntax sugar for providing a function with a structural record of arguments)
  • Structural typing (and nominal-types/newtypes also available)
  • Explicit lazy evaluation (evaluation is strict by default)
These are all things which we believe fit well with an editor helping you to type code. More on that in https://medium.com/lamdu-blog/designing-programming-languages-with-ides-in-mind-de890989dfa
Yair Chuchem
@yairchu
At the moment we only compile to JS, but once we make a native compiler we will want to look into interoperability :)
Yair Chuchem
@yairchu
As for specification, currently it's only form is in the code - there's the "Lamdu Calculus" which is a very simple language which is how the code is stored -
https://github.com/lamdu/lamdu-calculus/blob/master/src/Lamdu/Calc/Term.hs
And there's the "Sugared" language, which is how the code is displayed - where for example pattern matching booleans gets sugared to an if-expression. Declared at https://github.com/lamdu/lamdu/blob/master/src/Lamdu/Sugar/Types/Expression.hs
Edward
@edward309
Thanks Yair!
Edward
@edward309
Sounds like it will feel a lot like Haskell to write, but with greatly increased productivity.
(If it one day allows the programmer to utilize Haskell libraries relatively straightforwardly, then I think Lamdu will be an obvious choice for a functional programmer; very little effort/'cost' to adopt. With other languages, I'm fairly sure that I spend more time fixing syntax errors and examining execution of buggy code 'through a pinhole' than I do writing new code. Your explanation in the video was a new angle on this for me.)
Yair Chuchem
@yairchu
That's the goal :) But we still have a way to go in implementing missing features such as type-classes and making a native code compiler
Eyal Lotem
@Peaker
Edward, thanks for the feedback! We do have a bit of documentation at https://github.com/lamdu/lamdu-calculus/blob/master/README.md
Janus Troelsen
@ysangkok

so we're leaning towards the coherence-via-type-indices+reflecting-instance-choice-in-types idea at the moment

did you make a decision regarding the type class coherence? how does that decision interplay with the different methods of compiling type classes away? http://okmij.org/ftp/Computation/typeclass.html

Janus Troelsen
@ysangkok
(quote was from Aug 28 2017)
Yair Chuchem
@yairchu
@ysangkok it wasn't time to make the decision yet, mostly worked on ironing out the editing experience. However we are currently in the process of re-implementing the type-inference and type language towards adding features so will definitely read your reference :)
Janus Troelsen
@ysangkok
How the talk go?
Yair Chuchem
@yairchu
Hi! The talk went great! We were preparing for 45 minutes but then it was only 30, so some content was touched too quickly..
I think that a video of it will be uploaded, for now the slides (which are mostly just a table-of-contents) are available here https://docs.google.com/presentation/d/1nUoyrKRx8GBLOFIc85gK_ZM4P1FyULLpWTJLv3Vddc8/edit#slide=id.p
(btw the slides need to be viewed in presentation mode because there are some animations uncovering columns of a comparison table by removing white rectangles)
Adrian Legaspi
@akilegaspi
Hi everyone, I want to contribute to the development of lambdu, are there any pending tasks that are needed to be tackled?
Eyal Lotem
@Peaker
@akilegaspi Awesome! There are a whole lot of pending tasks in various areas. Would love to discuss with you what appeals to you to work on -- and also dive into the codebase to get you started
Adrian Legaspi
@akilegaspi

@Peaker I want to be working on more of the backend data processing side, particularly how the inputs are handled.

I've already looked at the GitHub issues and it seems like the Datatype creation would be needing some help.

Eyal Lotem
@Peaker
Great! Lamdu is a native app - so the frontend/backend are internal modular divisions. Type editing is currently waiting on a change we're doing to how ASTs are represented, that would allow annotating each subterm in the type-level. These annotations will be used to give identities to subterms so tracking diffs is at a fine-grained level that is easy to later merge (with structural revision control)
For type editing:
1) Our Type AST needs to support annotations -- this item is almost complete.
2) Type sugaring needs to annotate with actions to do the edits, including "type holes" which are like value holes, for editing an incomplete type
3) In the GUI, we need to expand TypeView to TypeEdit, that uses these actions
4) Add "Nominal Type Edit" panes in addition to the REPL pane and definition-edit panes
Janus Troelsen
@ysangkok
reimplemented factorial in current master https://imgur.com/a/Hx8TEpZ :D
congrats on completing the transition to syntax-tree
Eyal Lotem
@Peaker
Thanks! :)
We're making nice progress on translations, hopefully we can release that soon
https://i.imgur.com/l5itWIr.png intermediate state, translation support for Hebrew
Zac Garby
@zac-garby
Hi, this project looks really cool! It said about designing the website - I'd be happy to do that if nobody else has started on that already.
Yair Chuchem
@yairchu
Hi @zac-garby , that could be great!
Zac Garby
@zac-garby
Cool! I have an exam in a couple of hours but I’ll get started later today
Zac Garby
@zac-garby
Is there a high-quality SVG of the logo?
Yair Chuchem
@yairchu
I'm afraid there isn't. We're not graphic designers and the logo is something I whipped up using Pixelmator..
Here's a larger version https://pbs.twimg.com/profile_images/649596775108608000/9V_Xn80d_400x400.jpg
Zac Garby
@zac-garby
ah okay, it's just for the header of the website. i could recreate the circle with the lambda in the middle using CSS, that might look quite cool.
Zac Garby
@zac-garby
Screenshot 2019-05-24 at 18.16.51.png
thoughts?
Yair Chuchem
@yairchu
It does look nice! :) But in when making the current logo, with my non-professional design choices, I felt like just the letter lambda and not much more would be too simple. That's why the logo depicts something akin to Batman's "Bat Signal", i.e "Lambda to the rescue!", which is more specific than just the letter, though perhaps my visual design doesn't really make it clear..
Zac Garby
@zac-garby
Yeah I definitely agree, I like the “bat signal” idea, it’s a bit tricky to do with css though. I’ll probably end up making an svg for it
Yair Chuchem
@yairchu
I like really that gradient for the header :)
Zac Garby
@zac-garby
Thanks :smile:
btw, which font was used for the logo?
Yair Chuchem
@yairchu
Screen Shot 2019-05-24 at 21.24.01.png
Looks like maybe it's a hand-drawn shape..
But I don't think we're attached to the exact "font" :)
Zac Garby
@zac-garby
hmm ok. well i'll use the default font for now (which is actually arial, yuck), but it's easy to change if we need to.
Zac Garby
@zac-garby
Screenshot 2019-05-24 at 19.36.43.png
i made a few. the left two are different formats of the logo and the right one is for the website
Yair Chuchem
@yairchu
Nice :)