Giter VIP home page Giter VIP logo

Comments (4)

lexi-lambda avatar lexi-lambda commented on August 20, 2024 3

I would like to avoid assigning meaning to the names of identifiers. Lisp identifiers are traditionally much more lax about which characters you can use in an identifier, so you can name an identifier do-it! if you want, or even a!b@c#d$. This also avoids needing a syntax for converting prefix operators to infix ones and vice versa, since the (<>) and `elem` syntaxes wouldn’t work so well in a Lisp.

from hackett.

lexi-lambda avatar lexi-lambda commented on August 20, 2024

Infix operators are planned, in some way or another. The exact details are not squared away yet. However, you will need to use { curly braces } to enter “infix mode”, since there won’t be a syntactic distinction between infix operators and prefix operators like Haskell has (based on characters in identifiers). You will be able to assign associativity and precedence, though.

from hackett.

AnthonyJacob avatar AnthonyJacob commented on August 20, 2024

Could you elaborate why there will be no distinction between prefix and infix?

from hackett.

lexi-lambda avatar lexi-lambda commented on August 20, 2024

Associativity is now implemented in the new implementation in e7767ad, but precedence is still unimplemented. You can now specify associativity when writing a definition by writing #:fixity left or #:fixity right. left is the default.

This means type signatures can get a bit cleaner, since -> is now properly right-associative. You can now write {Integer -> Integer -> Integer}, and it will parse the way you would expect.

from hackett.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.