Al la enhavo

Exprimer des appels de fonction imbriqués sans ambiguïté en espéranto

de psychoslave, 2013-novembro-20

Mesaĝoj: 20

Lingvo: Français

psychoslave (Montri la profilon) 2013-novembro-20 16:06:04

C’est une question un peu technique, pour informaciens/matheux, désolé lango.gif

Ce que je souhaite c’est trouvé un moyen concis mais grammaticalement correct d'exprimer des appels de fonction non-ambigu en espéranto. Par exemple un équivalent a "c = sum(b, b)" pourrait être il me semble "con sumu bo bo", ou peut être "con sumigu bo bo", l’idée étant d’exprimer "bo et bo sont sommés dans co" plutôt que "co est affecté de la somme de bo et bo".

De plus je voudrais exprimer des appels de fonctions imbriqués tel "c = sum( sum(b, b), b)". Est-ce que je peux utiliser la préposition "je" à cet fin ? À savoir "con sumu je sumu bo bo tiam bo". Cela fait-il sens en espéranto ?

Sub (Montri la profilon) 2013-novembro-20 18:47:43

J'ai du mal à comprendre la question. Est-ce que tu cherches comment lire à l'oral un programme informatique ou comment expliquer un calcul en esperanto ? Ou est-ce que tu cherches si l'espéranto pourrait fournir un moyen innovant d'exprimer des appels de fonctions en détournant l'usage de l'accusatif, par exemple ?

sumu n'existe pas donc ce serait plutôt sumigu ou adiciu. De plus il faut mettre l'accusatif derrière donc peut-être : por kalkuli c-n, sumigu b-n kaj b-n

sum( sum(b, b), b)

sumigu b-n kaj b-n
kaj sumigu ĝin denove kun b-n

Je ne sais pas trop...

erinja (Montri la profilon) 2013-novembro-20 19:25:28

"co estas la sumo de bo kaj bo" ou "co egalas al la sumo de bo kaj bo"

psychoslave (Montri la profilon) 2013-novembro-21 10:08:21

Sub:J'ai du mal à comprendre la question. Est-ce que tu cherches comment lire à l'oral un programme informatique ou comment expliquer un calcul en esperanto ? Ou est-ce que tu cherches si l'espéranto pourrait fournir un moyen innovant d'exprimer des appels de fonctions en détournant l'usage de l'accusatif, par exemple ?
C’est effectivement ce dernier cas qui m’intéresse. À terme mon objectif est de disposer de langages de programmation basés sur l’espéranto. Bien sûr pour cela je ne suis pas forcé de passer par une grammaire strictement espérantiste. En soit on peut tirer partie de la régularité de l'espéranto d'un coté et de l'autre se contenter d’expressions symboliques comme a = b + c. Mais j'aimerais qu'optionnellement il soit possible de tout exprimer en toute lettre, car j'aime également la poésie et je trouverais formidable de pouvoir écrire des programmes qui associent l'élégance algorithmique au charme poétique.

C’est un projet libre de recherche sur la wikiveresité nommé Algoritmaro.

D'après le dictionnaire de lernu sumigi signifie « additionner ». Donc si je ne me méprends pas sur la signification de l’affixe -iĝ-, « sumigiĝi » signifie « s’aditionner »

Donc mon idée est dire que b = c + d + f peut s'exprimer :

      co, do kaj fo sumigiĝu en bo

Soit « c, d et f s’additionnent dans b ». En utilisant l’accusatif plutôt que la préposition en, et en se passant de la conjonction de coordination (qui à mon humble avis n’est pas indispensable) on peut donc, il me semble, dire :

co, do, fo sumigiĝu bon

Et comme en espéranto on est pas tenu de se tenir à l'ordre sujets/verbe/complément, on peut écrire

bon sumigiĝu co, do, fo

Aussi, d’après le dictionnaire majstro le verbe sumi est définie et se traduit en anglais par add up, soit s’additionner. Donc on doit effectivement pouvoir écrire de façon plus brève :

bon sumu co, do, fo

Jusque là en fait tout cela ne me paraît pas trop tiré par les cheveux. Et même ça me semble être une phrase espéranto grammaticalement correct (nonobstant la majuscule initiale et le point) qui calque parfaitement l'expression d'affectation b = sum(c, d, f).

La question que je me pose est donc : comment continuer pour « traduire » des expressions comme b = sum(c, sum(d, f) ) ou b = sum( sum(c, d), f) en étant aussi univoque ? Bien entendu pour une fonction de sommation qui est commutative et associative, ça n'est pas indispensable, mais il est clair que pour atteindre une équivalence expressive au système des parenthèses il faut une solution générique.

Francestral (Montri la profilon) 2013-novembro-21 17:04:54

Utiliser le silence comme marque de première parenthèse fermante me semble être une bonne idée.
-Exemple : Cirklo *c = new Cirklo(Punkto(a, b), r);
-Prononciation : cirklo stelo co egalas al nju cirklo punkto a bo [maldaŭra silento] ro

Au pire, dans un cas plus tordu, on peut utiliser des "kies [nombro]-a argumento estas".
-Exemple : f( g(h(a,b)), c, d, i(e) )
-Prononciation : fo, kies 1a argumento estas go ho a bo, kaj kies 2a kaj 3a argumentoj estas co kaj do, kaj kies 4a argumento estas i e.

Sub (Montri la profilon) 2013-novembro-21 18:22:14

Admettons que le nom de ta fonction sert de parenthèse ouvrante, il faut pouvoir indiquer la parenthèse fermante sinon le codage ne sera pas réversible ou sinon indiquer le nombre d'argument total.

(a+(c+d+e))+(f+g)

Solution 1 : En indiquant le nombre d'arguments :

sumu duope sumu duope a , sumu triope c, d , e , sumu duope f kaj g

Solution 2 : En marquant le dernier argument par kaj devant lui :

sumu sumu a kaj sumu c, d kaj e kaj sumu f kaj g

psychoslave (Montri la profilon) 2013-novembro-21 22:25:32

Ha! j’aime beaucoup vos idées, merci. ridulo.gif

En lisant le message de Francestral je suis directement aller chercher comment traduire arité, mais au final duloka ne me semble pas extrêmement plus pertinent que le duope proposé par Sub.

Pour ma part j’étais partie dans des recherches sur les proposition subordonnées, et si on trouve des explications sur les propositions subordonnées à l’impératif assez facilement, en revanche je n’ai pas l’impression qu’il existe de postposition de fermeture de subordonné. Tout au plus je remarque que « ju pli …, des pli … » associent deux propositions qu’on peut probablement un peu balader dans la phrase sans perdre le sens, bien que ce ne soit peut être pas très idiomatique « Ju pli rapide, kredu min, des pli bone », « Des pli bone, kredu min, ju pli rapide ». Bref, toutes les pistes que j’ai suivi en ce sens ne m’ont rien donné de très satisfaisant.

J’aime beaucoup l’idée de marquer le dernier argument par kaj, on pourrait difficilement faire plus concis, par contre je ne suis pas sur qu’accoler les verbes à l’impératif soit grammaticalement correct en espéranto, si, ou tout au moins pour indiquer une subordonné. Dans le cas où ça formerait une phrase espéranto valide, il me semblerait plutôt qu’il s’agirait de propositions juxtaposées : il faudrait ajouter ke pour subordonner. De plus je préférais réserver « kaj » comme opérateur de conjonction booléenne. À place, le plus court qui me vient à l’esprit et qui me semble sémantiquement valable sont les adverbes « fine » ou « laste ». La préposition « je » me tenterait aussi, mais je ne pense pas que ce serait correct.

Ce qui nous donne :
sumu ke sumu a laste ke sumu c, d laste e laste sumu f laste g

Kaj était plus intéressant du fait qu’il est moins long et que ce n’est pas un adverbe qu’on s’attend à pouvoir placer indifféremment avant ou après le substantif. Bon au niveau de l’ordre des mots il me semble qu’on est de toute manière assez contraint en espéranto du moment qu’on a des compléments d'objet indirects. Lingua::Romana:lango.giferligata -- Perl for the XXI-imum Century qui permet de coder en latin semble mieux s’en sortir en tirant partie des multiples déclinaisons.

psychoslave (Montri la profilon) 2013-novembro-21 23:25:09

Peut être puis-je utiliser plie voir poste :

sumu ke sumu a plie ke sumu c, d plie e plie sumu f ĝis g

( a + ( c + d + e ) ) + ( f + g ) soit:
sum( a, sum( sum( c, d, e ), sum( f, g ) ) soit:
sumu a ke sumu ke sumu c,d plie e plie sumu f,g

psychoslave (Montri la profilon) 2013-novembro-22 11:10:55

Je me rends compte qu'en fait je peut utiliser le pronom démonstratif tio et le pronom relatif kio pour manipuler une pile de variables anonymes qui se voient attribuer les résultats des fonctions appelés.

psychoslave (Montri la profilon) 2013-novembro-22 16:14:08

En regardant des citations qui utilisent tio, kion, je me demande dans quelle mesure cela permet de déplacer les propositions en restant grammaticalement correct :

Tio estas precize, kion mi volis. => C'est exactement ce que je voulais.

Peut-on dire « kion mi volis, precize estas tio » (ce que je voulais, c'est exactement ça) ?

Reen al la supro