Comments (4)
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.
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.
Could you elaborate why there will be no distinction between prefix and infix?
from hackett.
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)
- Thank you for the docs!
- README doc link 404's HOT 2
- Instance chaining seems to fail HOT 1
- Proposal: a macro DSL based on bidirectional type checking HOT 2
- Slow typechecking due to linear search in type context HOT 3
- issue with polymorphic values?
- Functor Instance Misbehaving HOT 3
- Rigid vars allowed to escape their scope HOT 3
- Expression type annotation vs. Declaration type annotation HOT 6
- Case pattern expanders? HOT 3
- #%elaborate-top combined with begin HOT 2
- Matching on the result of a constrained type variable
- Allow a macro to "reset" the elaborator and do all the elaboration passes within itself HOT 4
- Infinite loop while resolving instances HOT 3
- scribble/manual HOT 1
- Internal error when typechecking malformed `forall` clause HOT 3
- Auto-derived Show instance not terminating HOT 2
- Indendation sensitivity HOT 1
- Please add the `racket` topic to this repo
- Current Status HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hackett.