User:Yayimhere/Cleverxia Collab
Jump to navigation
Jump to search
This is the collab between User:Cleverxia and User:Yayimhere.
Idk, do you have any ideas Cleverxia? Perhaps something based on N-Type?
- isn't N-type just a variant of Haskell? also, I'm not familiar to functional languages.
- Idk, I dont know Haskell lol. But is it really functional??
- "Functional paradigm languages often include the syntactic traditions of combinatory logic and lambda calculus, and have a single syntax for all definitinos". Haskell satisfies all properties above
- I mean N-Type.
- "Functional paradigm languages often include the syntactic traditions of combinatory logic and lambda calculus, and have a single syntax for all definitinos". Haskell satisfies all properties above
- Idk, I dont know Haskell lol. But is it really functional??
(but if you really wants something in the functional paradigm, you can do eg. something on a tape of functions)
- Sure.
| Combinator | Definition | Bird name | Rank | Notes |
|---|---|---|---|---|
| B | S(KS)K | Bluebird | 3 | applicative, linear |
| B[1] | BBB | Blackbird | linear | |
| B[2] | B(BBB)B | Bunting | linear | |
| B[3] | B(BB)B | Becard | linear | |
| C | S(BBS)(KK) or S(S(KS)(S(KK)S))(KK) |
Cardinal | 3 | applicative, linear |
| D | BB | Dove | linear | |
| D[1] | B(BB) | Dickcissel | linear | |
| D[2] | BB(BB) | Dovekie | linear | |
| E | B(BBB) | Eagle | linear | |
| Ê | B(BBB)(B(BBB)) | Bald eagle | linear | |
| F | ETTET | Finch | linear | |
| G | BBC | Goldfinch | 4 | applicative, linear |
| H | BW(BC) | Hummingbird | ||
| I | SKK | Identity bird | 1 | linear |
| J | B(BC)(W(BC(B(BBB)))) | Jay bird | 4 | applicative, duplicative |
| K | K x y = x | Kestrel | 2 | cancellative |
| L | CBM or S(S(KS)K)(K(SII)) |
Lark | 2 | applicative, duplicative |
| M | OI or SII |
Mockingbird | 1 | applicative, duplicative |
| M[2] | BM | Double mockingbird | ||
| O | SI | Owl | 2 | applicative, duplicative |
| Q | CB or S(K(S(S(KS)K)))K |
Queer bird | 3 | applicative, linear |
| Q[1] | BCB | Quixotic bird | linear | |
| Q[2] | C(BCB) | Quizzical bird | linear | |
| Q[3] | BT | Quirky bird | linear | |
| Q[4] | F*B | Quacky bird | linear | |
| R | BBT or S(K(SS))(S(KK)K) |
Robin | 3 | applicative, linear |
| S | S x y z = x z (y z) | Starling | 3 | applicative, duplicative |
| T | CI or S(K(SI))K |
Thrush | 2 | applicative, linear |
| U | LO | Turing bird | ||
| V | BCT or S(S(KS)(S(KK)(S(KS)(S(K(SI))K))))(KK) |
Vireo | 3 | applicative, linear |
| W | SS(SK) or SS(KI) |
Warbler | 2 | applicative, duplicative |
| W[1] | CW | Converse warbler | ||
| Y | SLL or SSK(S(K(SS(S(SSK))))K) |
Sage bird | 1 | duplicative |
| I* | S(SK) | Identity bird once removed | ||
| W* | BW | Warbler once removed | ||
| C* | BC | Cardinal once removed | linear | |
| R* | C*C* | Robin once removed | linear | |
| F* | BC*R* | Finch once removed | linear | |
| V* | C*F* | Vireo once removed | linear | |
| W** | B(BW) | Warbler twice removed | ||
| C** | BC* | Cardinal twice removed | linear | |
| R** | BR* | Robin twice removed | linear | |
| F** | BF* | Finch twice removed | linear | |
| V** | BV* | Vireo twice removed | linear | |
| θ | YO | Theta (Bird?) [unsourced] | ||
| ϕ | ϕ x y z w = x (y w) (z w); | Phoenix | 4 | applicative, duplicative |
| Ψ | Ψ x y z w = x (y z) (y w); | Psi bird | 4 | applicative, duplicative |
| ω | MM | Omega bird [unsourced] | ||
| ι | S(SI(KS))(KK) | Iota (not a bird) | 1 | linear |
So for example we starts a infinite tape with the identity function and do something like each command applies something to it.
- Wbu a brainfuck-y language, but where the only conditional is translating the numbers into functions. somehow
Maybe something like
Btry to beta-reduce cell[...]loops when cell is *exactly* the identity function
- Hmmm, sure. Then I think we leave each cell starting as
I, and then+and-could be designed specifically to be something where - is very beta reducible, and + *isn't*.
- Hmmm, sure. Then I think we leave each cell starting as
- something like
-=some combinator,+wraps current cell in some very complex function and you need a specific function to apply on it to turn it into a simple form, maybe
+could be-in Utral, and-could be().- we may just use
-for the very complex combinator, and use+for () (or just K or simply beta-reduction).- Using
-as () makes more sense because it gets it "closer" to being the identity. + being beta reduction is boring IMO. - I think
+should be duplicative. Maybe Ψ?- I personally think Ψ is not as good as ϕ in
+'s.- Then we'll use ϕ!
- I personally think Ψ is not as good as ϕ in
- Using
- we may just use
anyway, anything for looping constructs or I/O?
- Looping works with the idea you gave. I/O could use church numerals, printing the normal expression as is if it *isnt* a church numeral.
| command | meaning | Header text |
|---|---|---|
| + | apply the ϕ combinator to cell | Example |
| - | () in Utral |
Example |
| > | same as in [[bf] | Example |
| < | same as in [[bf] | Example |
| [...] | Loop while current cell isn't exactly the identity function | Example |
| . | print current cell as church numeral, as an expression if not a church numeral | Example |
| , | read a character as a church numeral, unchange on EOF | Example |
| ? | ? | Example |
| β | Beta reduce current cell | Example |
| ? | ? | Example |
| ? | ? | Example |
- Though, two things:
- "A" is kinda boring because you can basically just try to do normal lambda calculus.
- maybe [] should loop when not the identity
- Fixed.
- Thanks. I think this is complete!
- Perhaps for a name we could name it phifunc (from ϕ and function, as a parody of brainfuck)
- Done. You can delete the page now
- Cool. and cool name. I think im gonna keep this page around tho.
- Done. You can delete the page now