(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!)
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
Tense can also be synonymous with emotion: dangerous/exciting and also as a measure: tension/tight.
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 with a link to the explanation of the English word as well.
English has indicative («go», «is going» etc), subjunctive / conjunctive / conditional («went» in «as if they went»), imperative («go!»).
German has two conditional moods – Konjunktiv I and II, for example.
Finno-Ugric languages have many more.
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?If it helps, you can think of it like named arguments where the name is inferred from the case.
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
https://github.com/celaleddin/sembolik-fikir
Will check this out further in the following days. Thanks for sharing!
My solution for this problem in Kip was to go all the way with the morphological analysis using TRmorph (https://github.com/coltekin/TRmorph) for it, and then resolve the ambiguities in type checking / elaboration. (Therefore Kip almost never needs apostrophes.) Whether it was worth it, I don't know, but it was a fun problem to solve. :)
Fibonacci-Dizisi (n):
n 0'a eşitse:
dur.
değilse:
bu-sayıyı yazdır.
şu-sayıyı, (bu-sayı + şu-sayı), (n - 1) ile Fibonacci-Dizisi'ne devam et.
Ana-Akış: "Bir sayı girin: " yazdır.
Girdiyi oku -> girdi.
girdi'nin tam-sayı-hali:
Yokluksa: "Geçersiz sayı" yazdır.
Varlıksa (n): 0, 1, n ile Fibonacci-Dizisi'ni başlat.
Başlat: Ana-Akış.nevertheless, that is a good start, congratulations.
Check out Logos lang, would love to chat sometime. love that you chose Haskell!
Funny how the case system of Turkish is both strong and standardized enough for this to work well. I don't know any other language where flexible argument order would work so well.
Any highly inflected language has such a property. Slavic languages, Sanskrit (or, more broadly, Indo-Aryan languages) are prime examples.
Speakers of Finnish and Hungarian will likely chime in and state something similar.
For the subtraction example, some numbers would be 50:tä 5:llä and others 6:tta 3:lla. Of course you could encode for all those possibilities and successfully parse them, but it would feel weird for a compiler to reject an expression because it's ungrammatical Finnish.
Also it would feel weird if you first write (vähennä muuttujaa 256:lla) but then realise you made an off-by-1 and have to change it to (vähennä muuttujaa 255:lla) but that doesn't compile because it should be 255:llä, so you have to remember to change two things.
But on the other hand, that's just how it is to write in Finnish, so in prose we don't really think about it. In natural language, it's normal to have to change other stuff in a sentence for it to continue making sense when you change one thing.
What kind of sample size is that? A case system and flexible argument order are largely the same thing.
Note also that flexible argument order is a robust phenomenon in English:
1. Colonel Mustard killed him in the study at 5:00 with his own knife.
2. Colonel Mustard killed him at 5:00 in the study with his own knife.
3. Colonel Mustard killed him in the study with his own knife at 5:00.
4. Colonel Mustard killed him with his own knife at 5:00 in the study.
5. Colonel Mustard killed him at 5:00 with his own knife in the study.
6. Colonel Mustard killed him with his own knife in the study at 5:00.
But if you insist on looking in other languages, there's a famous Latin poem beginning Quis multa gracilis te puer in rosa perfusus liquidis urget odoribus grato, Pyrrha, sub antro?
Translating this as closely as possible to a one-word-for-one-word standard, it says What slender boy soaked [in] liquid odors presses you among many rose[s], Pyrrha, beneath [a] pleasant cave?
(Notes: rosa is singular for unclear reasons. There is nothing corresponding to the in of "in liquid odors"; the relationship between the odors and the soaking is expressed purely by case. There is also nothing corresponding to the article in "a pleasant cave"; Latin does not mark definiteness in this way. Location inside a cave is expressed with "beneath"; compare English underwater.)
Anyway, the actual word ordering, using this translation, is: What many slender you boy among rose[s] soaked liquid presses [in-]odors pleasant, Pyrrha, beneath [a-]cave?
I've heard that Russian poetry is given to similarly intricate word orderings.
The only variation in your English examples is with the prepositions. English is a language where you just do not get that kind of flexibility. Unless, again, you do poetry. Can't even put the inflected pronoun first even though it would be unambiguous:
Him Colonel Mustard killed.
Let's look at this contrived example: The policeman bites the dog.
Notice how in English I can't reverse them easily. Have to get creative: The dog the policeman bites.
Stilted and prone to get misunderstood isn't it? In German, this is possible: Den Hund beisst der Polizist.
Though if you do that, people think you made a mistake and will misunderstand you. The cases are rather weak in German. No comparison to Turkish: Köpeği ısırıyor polis.
They do it for emphasis as part of everyday speech. You can put the subject first or last or in the middle and there is no confusion. Though admittedly that example is stretching it :-)Now I can use my programming brain to fast forward the learning.
Amazing
My Turkish is pretty rusty - and was never any good anyway, but really cool stuff.
https://www.euronews.com/my-europe/2024/10/25/what-is-turkis...
(276 points and 255 comments) https://news.ycombinator.com/item?id=41793485
I'm having a hard time seeing how this is much different from record types, except that you're limited to only eight fixed record field names (one for each grammatical case).
... and there are only eight argument names. Which seems... limiting.
It's different from record types in the sense that you can provide the arguments in any order to a function
You can provide the fields of a record in any order, and call a function with it!
f { foo=3, bar=5 }
g { bar=5, foo=3 }
I still think the page needs a Rosetta Stone.