C-Talk    up
  similar languages: C   C#   C++   D   Cilk   Java   Objective-C   Pike   TOM  
  Description: C-Talk is an object-oriented language with strong static typing, multiple-inheritance, parameterized classes (templates), exceptions, multi-tasking, persistent objects and garbage-collection instead of explicit (manual) memory-removal. C-Talk inherits best features from languages like C++, Smalltalk, Lisp, CLU.


 Eulersche Number (1)   Michael Neumann
(* e = Summe der Reziproken der Fakultäten *)



// Fakultäts-Funktion
function fac( int n ) returns int
{
   if( n > 1 ) return n * fac(n-1);
   else return 1;
}


var arr := [ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ];


// filter_arr wendet die übergebene Funktion auf jedes Element des 
// Arrays arr an und schreibt den Rückgabewert zurück ins Array
function filter_arr ( proc(float) returns float transform ) {
   for( var i := 0 ; i < 10; i := i + 1 ) {
      arr[i] := transform(arr[i]);
   }
}


// Fakultäten berechnen
// lambda erzeugt eine namenlose Funktion
// -> ist ein typecast
filter_arr( lambda(float x) returns float { return fac(x -> int) -> float; } );

// Reziproken berechnen
filter_arr( lambda(float x) returns float { return 1.0 / x; } );

// Summe bilden
var float e := 0.0;
filter_arr( lambda(float x) returns float { e := e + x; return x; } );


// e ausgeben
cout << e;
Calculates the eulersche-number (e=2.71828).


 Eulersche Number (2)   Michael Neumann
// Fakultäts-Funktion
function fac( int n ) returns int
{
   if( n > 1 ) return n * fac(n-1);
   else return 1;
}

var e := 0.0;

for( var n := 0; n < 10; n := n + 1 ) {
   e := e + 1.0 / fac(n) -> float;
}



// e ausgeben
cout << e;
Calculates the eulersche-number (e=2.71828).


 Factorial   Michael Neumann
/* 
 * Berechnen der Fakultät
 */


function fac( int n ) returns int
{
   if( n > 1 ) return n * fac(n-1);
   else return 1;
}


// Funktion aufrufen
cout << fac(6);
Calculates the factorial. Results 720.


 Hello World   Michael Neumann
// Hello World in C-Talk

cout << "Hello World\n";
Prints "Hello World" onto the screen.


 Squares   Michael Neumann
(*
 * Squares (* geschachtelter Kommentar *)
 *)


for( var int i:=1; i<=10; i:=i+1 )
{
   cout << i * i << " ";
}
Outputs the squares from 1 to 10.