Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

Well, being a native speaker of Finnish, I think I can speculate a bit. I'm sorry for the upcoming confusing explanation, but I know only basics of linguistics.

Apart from mostly free word order, I think the biggest difference of practical significance between Finnish and English is word flexion. In English, you indicate by use of prepositions (and sometimes postpositions) location, relation, preference, and other similar concepts for nouns. For instance, one might say (the classical example) "I live in a house" or "A lion ate me".

In Finnish, you flex the nouns, the pronouns, the adjectives, and the verbs, so our examples become asun talossa (or minä asun talossa) and leijona söi minut. In the former, the basic or root form of house, talo is flexed with the -ssa suffix to indicate that something is in something else. Minä, which means I, is flexed as in English, indicating that "I" was the target of the action of eating. The root form of the verb asua, to live, is also flexed according to the pronoun. As in Spanish, you can optionally leave out "I", as it is already visible from the verb who the subject of the sentence is. Also notable is that there are no definite and indefinite articles in Finnish, but those are understood from context.

By the way, as in English, there are no grammatical genders, and in fact, we even have only one pronoun for third person singular: hän. Talk about gender equality.

There are fourteen noun cases in Finnish, corresponding to such English prepositions as in, inside, out, outside, of, for, with, by, and between, to name a few. The rules for flexing nouns are a tad complex for non-natives, because not only are there many exceptions (or rather several very different rulesets), you also have to obey so-called vowel harmony.

Vowel harmony means that a single word must have either frontal vowels (y, ä, ö, y and ö the same as in German) or back vowels (a, o, u, roughly the same as in Latin). Both sets can be mixed with neutral vowels (e, i), but not with each other. This means that there are, in fact, two versions of each noun case, one for frontal vowels and one for back vowels. Our example case, -ssa would be -ssä for words such as äiti, mother. (Imagine the English sentence "there is something good in mother" and äidissä on jotain hyvää.) Talking about vowels, we also have a dozen or so diphthongs.

Back to word flexion, pronouns may assume the same cases as nouns. I can say minussa, "in me" or "inside me", or hänessä, "in him/her" or "inside him/her". (Note again vowel harmony.)

Adjectives and verbs flex as well, but a bit differently. Since this is already a long reply, I'll skip most, but in our example, the word söi is the past tense of the root verb, syödä, to eat, flexed according to third person singular. If it were a group of lions, we would use söivät to indicate plurality (and the present (progressive) tense would be syövät, "eat" or "are eating", but you don't want to think about that).

Naturally, there is also a grammatical group for non-flexing words, i.e. adverbs. There are some that can be used as pre- or postpositions akin to English.

One example more before actual speculation: word order is relatively free, but it does carry some significance, namely making nuances. In English, you can say "A lion ate me" to stress that it was a lion that ate, or you can say "I was eaten by a lion" with a passive agent to stress that it was you who was eaten. In Finnish, we don't need to change the grammatical structure of the sentence. The first case is leijona söi minut and the second is minut söi leijona. You can permute the three words in any order and you get a different nuance of the same event.

I have never studied Latin, but as I understand it and from reading Lingua::Romana::Perligata manual, Latin has completely free word order, and it has even stronger word flexion than Finnish. So, to see what Finnish-influenced programming could possibly look like, check that excellently funny module.

However, some speculation by me is in order. A Finnish-influenced programming language would have very few prepositions and postpositions and would instead either have an elaborate variable name flexion system to indicate relationship between data, or it would write graphemes in place of prepositions, such as arrows or some other abstract symbols.

Germanic languages have one very good quality: they are modular, for lack of a better word. You can take out a noun and replace it with something else without affecting anything else in the sentence, i.e. without any changes in flexion in other words. You can't do that in Finnish in general. One related example is flexing ordinals. Say you want to say "twenty first": kahdeskymmenesensimmäinen. That's two words: kahdeskymmenes "twentieth" and ensimmäinen "first", and the cardinals for those are kaksikymmentä "twenty" (literally two tens) and yksi "one". If you want to say "in the twenty first chapter", it turns out you need to flex each component in turn: kahdennessakymmenennessäensimmäisessä luvussa. Naturally, you don't often do this in speech nowadays, but use the English system. It's vulgar, but oh so much more convenient.

So, in our hypothetical language, variable assignment is already a challenge. In Perl 5:

my $var = value; my @array = (values);

If you want to strictly adhere to Finnish grammar, we would have something like (taking into account that "variable" is muuttuja, "value" is arvo, pl. arvot, and "array" is taulukko):

aseta var-muuttujaan arvo value. aseta array-taulukkoon arvot (values).

Here, aseta means "set", as that's what the equals symbol really does. var-muuttujaan means "into the variable var", and the same for array-taulukkoon. Given somewhat free word order, the lines above are equivalent to:

# For variable assignment: aseta arvo value muuttujaan var. aseta arvo value var-muuttujaan. aseta muuttujaan var arvo value. # For list assignment: aseta arvot (values) taulukkoon array. aseta arvot (values) array-taulukkoon. aseta taulukkoon array arvot (values).

I can see a similar pattern as in Lingua::Romana::Perligata forming. However, this is already too long a reply.

It's curious to note, by the way, that even modern mathematical notation is heavily influenced by Germanic languages. It's hard to come up with examples, but you instinctively notice it if you are not a native speaker of a similar language.

UPDATE: If you want to do the same as in Perligata, i.e. flex the variable name (instead of the hack above), it becomes more complicated. Variable name muuttuja would flex to muuttujaan, but variable name var would flex to variin, if we try to transcribe the meaning "set var to value". If you wish to use the verb "to be" as in Perligata example:

# my $muuttuja = value; muuttujan arvo on value. # my $var = value; varin arvo on value. # Alternative word order: value on muuttujan arvo.

This is because var ends with a consonant, not a vowel, and thus an extra vowel needs to be appended. The parser would need to take this into account; i.e. it would have to be able to deduce the root name from the flexed variable name, and that's not trivial at all.

--
print "Just Another Perl Adept\n";


In reply to Re: The Germanic language form by vrk
in thread The Germanic language form by Win

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2024-04-18 06:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found