4 ms·
Hi all, Kip's developer here! I was going to wait until we had finished the playground and landing page before posting about the project more, but here's the br
by joomy 9mo ago
Hi all, Kip's developer here! I was going to wait until we had finished the playground and landing page before posting about the project more, but here's the browser-based playground we have so far (thanks to Alperen Keles) for anyone who wants to play with the language: https://alpaylan.github.io/kip/ https://alpaylan.github.io/kip/
(The work on JavaScript transpilation just started today and currently doesn't work, but running the language should mostly work, though it probably has bugs, which I'd love to hear about in the repo's issues!)
- sedatk 9mo agoFantastic work, an area I’ve always wanted to explore.
- nhatcher 9mo agoSorry! It was too beautiful not to share it. But I'm sure you can do a show HN once you think is ready.
- joomy 9mo agoThat's okay, thanks for sharing!
- araes 9mo agoQuestion on some of the syntax. It's neat, and think the idea's cool. Would definitely be something if nothing else for security through obscurity. Is it even code? However, for some of the number stuff, if you write something like: (5'le 3'ün farkını) yaz. (3'ün 5'le farkını) yaz. How does it tell whether it is: 5 - 3 = 2, or 3 - 5 = -2 ? Does it always just return 2 because of the meaning of "farkını" and the placement of 'le and 'ün? Like: (5 first, 3 second, difference) write, vs (3 second, 5 first, difference) write ? Google just gave back: Write (the difference between 5 and 3). Write (the difference between 3 and 5). Not especially familiar with Turkish, and mostly had to use translation, yet it looks like a language for defining math theorems? Number following "zero" shall be called "one", number following "one" shall be called "two". Or is that more just a feature of using natural language for the writing syntax?
- joomy 9mo ago"fark" here takes two arguments, the first (the minuend) is in instrumental case (-le), the second (the subtrahend) is in genitive case (-in). Now, because of the suffixes of the cases, regardless of the order in which you give the arguments, the type system can figure out which one is supposed to be the minuend and which the subtrahend. If it helps, you can think of it like named arguments where the name is inferred from the case.
- ronjakoi 9mo agoEssentially you could write equivalent code as (vähennä 5:ttä 3:lla) in Finnish
- nurettin 9mo agoHow do you express |a - b| ?
- joomy 9mo ago(bu tam-sayının) mutlak-değeri, (bunun 0'dan büyüklüğü) doğruysa, bu, değilse, bunun -1'le çarpımıdır. (5'in mutlak-değerini) yaz. (-5'in mutlak-değerini) yaz. You can try it in the playground.
- pinkmuffinere 9mo agoDisclaimer: I grew up speaking Turkish, but never studied it. I think I can give a common-sense explanation, but can’t give a rigorous “proof” appealing to grammatical rules. I read “(5’le 3’ün farkını) yaz” as “having 5, 3’s difference write” (of course this is not natural in English). Ie, you’re given 5, you want to take 3, and write the result. Likewise, “(3’ün 5’le farkını) yaz” would be “3’s difference, having 5, write”. Again we are given 5, and want 3’s difference. Because we’re starting with 5, i think there is no ambiguity in the operation to be done — start with 5, subtract 3. Idk if that actually helps clarify it at all, maybe it gives some intuition
- andro_dev 9mo agoThe Turkish sentence's expansion would be pretty much like the mathematical expansion of the expression order.
- gerdesj 9mo ago"Kip (meaning "grammatical mood" in Turkish)" I'm not sure what a grammatical mood is, so I tried a couple of well known translation services and got: kip == "mode". However big G did also manage "modal", "paradigm", "tense" and "module". For my money: "tense". Just to confuse the issue, tense has several meanings in english! Here I think we are talking about a verbal tense: https://www.bbc.co.uk/bitesize/articles/zh4thbk#zyh2s82 https://www.bbc.co.uk/bitesize/articles/zh4thbk#zyh2s82 Tense can also be synonymous with emotion: dangerous/exciting and also as a measure: tension/tight.
- Twey 9mo agoIn linguistics, tense is a verb conjugation to indicate temporal information, while mood is a conjugation to indicate various kinds of metainformation about the speaker's relationship to the information in the sentence. It's not as common a term as ‘tense’ when discussing English, because English doesn't conjugate for mood, but it is the standard word for describing some features of Turkish morphology such as evidentiality. Automatic translators, while an impressive and convenient piece of technology, usually focus on providing a plausible gloss in the target language, so typically lose a lot of nuance. For looking up words a dictionary is usually a better bet; for example, Wiktionary has https://en.wiktionary.org/wiki/kip#Turkish https://en.wiktionary.org/wiki/kip#Turkish with a link to the explanation of the English word as well.
- thaumasiotes 9mo ago> because English doesn't conjugate for mood It does, but like some other English inflectional patterns the syntax is mostly vestigial. All I ask is that the two of you be polite to each other has be in subjunctive mood; if it were indicative, it would be are instead. Something that I find interesting is that, while conjugating verbs for mood is largely vestigial in English, the more general phenomenon of paying close attention to the relationship between the sentence and reality, the focus that mood expresses, is very much alive. It's just that it's mostly moved out of the inflectional system.
- Twey 9mo ago
- yowayb 9mo agoI studied Turkish for a few years and remember thinking it could make an interesting programming language (due to the grammatical/agglutinative features). I was gonna call it Ç, but I was never seriously going to make it. Happy to see someone went for it!
- mertd 9mo agoÇ is a brilliant name
- joomy 9mo agoOkay there is an updated web page and playground now: https://kip-dili.github.io/ https://kip-dili.github.io/