Difference between revisions of "Writing algorithms in Lojban"

From Lojban
Jump to: navigation, search
m (Attempt at translating a piece of C code to Lojban: Trying to fix the formatting)
(jmina lo pinka)
 
(11 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
== Attempt at translating a piece of C code to Lojban ==
 
== Attempt at translating a piece of C code to Lojban ==
  
<syntaxhighlight lang="c">
+
= C code =
<nowiki>char* str_fill(char string[], char filling, uint_t count) {
+
 
 +
<pre>
 +
char* str_fill(char string[], char filling, uint_t count) {
 
   if (string) {  
 
   if (string) {  
 
       if (!count) while(string[count]) count++;  
 
       if (!count) while(string[count]) count++;  
Line 10: Line 12:
 
   }  
 
   }  
 
   return string;  
 
   return string;  
}</nowiki>
+
}
</syntaxhighlight>
+
</pre>
  
'''English translation:'''
+
= English translation =
  
<code>
+
<pre>
<nowiki>Function str_fill returning char pointer, taking parameters:
+
Function str_fill returning char pointer, taking parameters:
 
     'string', of type char array; 'filling', of type char; 'count', of type uint_t.  
 
     'string', of type char array; 'filling', of type char; 'count', of type uint_t.  
 
Variable list: empty.
 
Variable list: empty.
Line 29: Line 31:
 
     >  >  we copy 'filling' into the offset number 'count' of the array 'string'  
 
     >  >  we copy 'filling' into the offset number 'count' of the array 'string'  
 
     we return to the calling function giving the value 'string'  
 
     we return to the calling function giving the value 'string'  
End of function.</nowiki>
+
End of function.
</code>
+
</pre>
 +
 
 +
= Lojban translation (to be improved) =
 +
 
 +
'''Attempt by Danr'''
 +
 
 +
<pre>
 +
to ro da zo'u la'e da du ca'e lo se judri be da toi
  
'''Lojban translation (to be improved)'''
+
la .styrfil. cu pruce
 +
  la .strin. poi judri lo lerfu ku'o ce'o
 +
  la .filin. poi lerfu ku'o ce'o
 +
  la .kaunt. poi mulna'u ku'o
 +
  la .strin. poi ke'u judri lo lerfu ku'o
 +
  lo pu'u
 +
    va'o lo nu la'e la .strin. na du li no kei
 +
      ba gi
 +
        va'o lo nu la .kaunt. na du li no kei
 +
        ze'a lo nu la'e lo sumji be la .strin. bei la .kaunt.
 +
                  na du li no kei
 +
        ko setca fi la .kaunt.
 +
                fe lo sumji be la .kaunt. bei li pa
 +
      gi ba gi
 +
        ko setca fi la'e lo sumji be la .strin. bei la .kaunt.
 +
                fe li no
 +
      gi
 +
        ze'a lo nu ba gi ko setca fi la .kaunt.
 +
                                  fe lo se sumji be la .kaunt. bei li pa
 +
                  gi la .kaunt. na du li pa kei
 +
        ko setca fi la'e lo sumji be la .strin. bei la .kaunt.
 +
                fe la .filin.
 +
</pre>
 +
mi milxe lo ka se mansa ge tu'a zo ze'a gi tu'a zo'oi .return.
  
<code>
+
'''Second attempt by Ilmen'''
<nowiki>ni'o ni'o ca'e pruce fa la lerpoiclugau fo di'e
+
 
 +
<pre>
 +
mi do minde lo nu
 +
...
 +
lo si'o clubixlerpoi zo'u
 +
ro da ro de ro di ro di xi re zo'u go da de di di xi re clubixlerpoi
 +
gi da goi la lerpoi de goi la selclu di goi la selzilkancu di xi re goi la selpra zo'u
 +
lerpoi fa la lerpoi gi'e lerfu fa la selclu gi'e namcu fa la selzilkancu
 +
ju'ei go la lerpoi cu dubyfrica li no gi
 +
    go la selzilkancu cu dubdu'i li no gi
 +
        zvailu fa xu'u
 +
            lo pormoi be la selzilkancu bei la lerpoi cu nonmau
 +
        vau xu'u
 +
            zo selzilkancu li pa ka'irze'a
 +
        vau
 +
    ju'ei ba bo li no pormoi la selzilkancu la lerpoi
 +
    ju'ei ba bo zvailu fa xu'u
 +
        la selzilkancu cu nonmau
 +
    vau xu'u
 +
        zo selzilkancu li pa ka'irjdika
 +
        ju'ei ba bo pormoi fa la selclu la selzilkancu la lerpoi
 +
    vau
 +
ju'ei ba bo la selpra la lerpoi cu mintu
 +
</pre>
 +
to .e'i pensi lo nu basygau zo lerjudri zo lerpoi toi
 +
 
 +
'''First attempt by Ilmen'''
 +
 
 +
<pre>
 +
ni'o ni'o ca'e pruce fa la lerpoiclugau fo di'e
 
fe la lerpoi noi me'oi .char. judri
 
fe la lerpoi noi me'oi .char. judri
 
ce'o la selclu noi me'oi .char.
 
ce'o la selclu noi me'oi .char.
Line 53: Line 114:
 
>  gi ko'oi lo me la selzilkancu moi be la lerpoi cu fukpi la selclu
 
>  gi ko'oi lo me la selzilkancu moi be la lerpoi cu fukpi la selclu
 
} tu'u
 
} tu'u
.i ko'oi zilxru gi'e pruce fi la lerpoi</nowiki>
+
.i ko'oi zilxru gi'e pruce fi la lerpoi
</code>
+
</pre>
 +
 
 +
'''To be improved:'''
 +
 
 +
1) {la broda cu du li re} is probably not right; perhaps {la'e la broda} would be better for refering to the variable value.
 +
 
 +
2) "jo" is perhaps wrong for "if...then".
 +
 
 +
3) {dubze'a} is probably nonsensical, it should be replaced with something else. :)

Latest revision as of 20:51, 4 March 2015

Attempt at translating a piece of C code to Lojban

C code

char* str_fill(char string[], char filling, uint_t count) {
   if (string) { 
      if (!count) while(string[count]) count++; 
      string[count] = '\0'; 
      while (count--) string[count] = filling; 
   } 
   return string; 
}

English translation

Function str_fill returning char pointer, taking parameters:
    'string', of type char array; 'filling', of type char; 'count', of type uint_t. 
Variable list: empty.
Instruction list:
    if 'string' is not equal to 0: 
    >   if 'count' is equal to 0: 
    >   >   as long as the offset number 'count' of the array 'string' is not equal to 0: 
    >   >   >   we add 1 to 'count' 
    >   we set the offset number 'count' of the array 'string' to 0 
    >   as long as 'count' is not equal to 0: 
    >   >   we substract 1 from 'count' 
    >   >   we copy 'filling' into the offset number 'count' of the array 'string' 
    we return to the calling function giving the value 'string' 
End of function.

Lojban translation (to be improved)

Attempt by Danr

to ro da zo'u la'e da du ca'e lo se judri be da toi

la .styrfil. cu pruce
  la .strin. poi judri lo lerfu ku'o ce'o
  la .filin. poi lerfu ku'o ce'o
  la .kaunt. poi mulna'u ku'o
  la .strin. poi ke'u judri lo lerfu ku'o
  lo pu'u
    va'o lo nu la'e la .strin. na du li no kei
      ba gi
        va'o lo nu la .kaunt. na du li no kei
        ze'a lo nu la'e lo sumji be la .strin. bei la .kaunt.
                   na du li no kei
        ko setca fi la .kaunt.
                 fe lo sumji be la .kaunt. bei li pa
      gi ba gi
        ko setca fi la'e lo sumji be la .strin. bei la .kaunt.
                 fe li no
      gi
        ze'a lo nu ba gi ko setca fi la .kaunt.
                                  fe lo se sumji be la .kaunt. bei li pa
                   gi la .kaunt. na du li pa kei
        ko setca fi la'e lo sumji be la .strin. bei la .kaunt.
                 fe la .filin.

mi milxe lo ka se mansa ge tu'a zo ze'a gi tu'a zo'oi .return.

Second attempt by Ilmen

mi do minde lo nu
...
lo si'o clubixlerpoi zo'u
ro da ro de ro di ro di xi re zo'u go da de di di xi re clubixlerpoi
gi da goi la lerpoi de goi la selclu di goi la selzilkancu di xi re goi la selpra zo'u
lerpoi fa la lerpoi gi'e lerfu fa la selclu gi'e namcu fa la selzilkancu
ju'ei go la lerpoi cu dubyfrica li no gi
    go la selzilkancu cu dubdu'i li no gi
        zvailu fa xu'u
            lo pormoi be la selzilkancu bei la lerpoi cu nonmau
        vau xu'u
            zo selzilkancu li pa ka'irze'a
        vau
    ju'ei ba bo li no pormoi la selzilkancu la lerpoi
    ju'ei ba bo zvailu fa xu'u
        la selzilkancu cu nonmau
    vau xu'u
        zo selzilkancu li pa ka'irjdika
        ju'ei ba bo pormoi fa la selclu la selzilkancu la lerpoi
    vau
ju'ei ba bo la selpra la lerpoi cu mintu

to .e'i pensi lo nu basygau zo lerjudri zo lerpoi toi

First attempt by Ilmen

ni'o ni'o ca'e pruce fa la lerpoiclugau fo di'e
fe la lerpoi noi me'oi .char. judri
ce'o la selclu noi me'oi .char.
ce'o la selzilkancu noi me'oi .uint_t.
fi lo me'oi .char. judri

ni'o to ve pruce liste toi
la lerpoi na du li no .i jo tu'e {
>   la selzilkancu cu du li no .i jo tu'e {
>   >   lo me la selzilkancu moi be la lerpoi na du li no .i jo
>   >   ko'oi rapli co'u lo nu ja'a go'i ku fa lo nu
>   >   ko'oi la selzilkancu cu dubze'a li pa
>   } tu'u
>   .i la selzilkancu na du li no .i jo
>   ko'oi rapli co'u lo nu ja'a go'i ku fa lo nu
>   ge ko'oi la selzilkancu cu dubjdika li pa
>   gi ko'oi lo me la selzilkancu moi be la lerpoi cu fukpi la selclu
} tu'u
.i ko'oi zilxru gi'e pruce fi la lerpoi

To be improved:

1) {la broda cu du li re} is probably not right; perhaps {la'e la broda} would be better for refering to the variable value.

2) "jo" is perhaps wrong for "if...then".

3) {dubze'a} is probably nonsensical, it should be replaced with something else. :)