Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (14.05.2015, 17:20)
Treue Seele
Wohnort: Düsseldorf
Beruf: Manager of Developer Relations at Hazelcast, Inc. & Consultant for Scaleable Gameserver Systems
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Noctarius« (14.05.2015, 15:22)
Zitat
wieso sollte ich es besser können als X Leute
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
// Temp XieXie Test import Console // "Calculation" interface (or rather abstract class) class Calc { String name() int apply(int lhs, int rhs) } // Test main class class Test { // Folds all elements from 'list' and start with 'neutral' static int fold(int[] list, int neutral, Calc calc) { Console.write("method: ") Console.writeLine(calc.name()) int s := neutral foreach x : list { s := calc.apply(s, x) } Console.write("elements: { ") for int i ; i < list.size() ; i++ { Console.write(list[i]) if i < list.size() - 1 { Console.write(", ") } else { Console.writeLine(" }") } } Console.write("result = ") Console.writeLine(s) return s } // Prints the underline for the specified string static void underline(String s, int extent := 0) { for int i := -extent ; i < s.size() ; i++ { Console.write("-") } Console.writeLine("") } // Prints an headline for the specified string static void headline(String s) { Test.underline(s, 4) Console.write("| ") Console.write(s) Console.writeLine(" |") Test.underline(s, 4) } // Main entry point static void main() { Test.headline("folding test") var list := { 3, -12, 42, 8, 39 } Test.fold( list, 0, new Calc() { String name() { return "sum" } int apply(int lhs, int rhs) { return lhs + rhs } } ) Test.fold( list, 1, new Calc() { String name() { return "multiplication" } int apply(int lhs, int rhs) { return lhs * rhs } } ) } } |
Quellcode |
|
1 2 3 4 5 6 7 8 9 |
---------------- | folding test | ---------------- method: sum elements: { 3, -12, 42, 8, 39 } result = 80 method: multiplication elements: { 3, -12, 42, 8, 39 } result = -471744 |
Ich überlege auch irgendwie mal so etwas zu machen, also eine vm + compiler... mal sehn
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
// XieXie Nesting Test // 08/06/2015 import Console class Printer { void print() } class Test { static void main() { /* Iterate over list, which is returned by "getArray", from an anonymous class, which is derived from "Object" */ foreach x : new Object() { int[] getArray() { return { 42, 3, -12 } } }.getArray() { Console.writeLine(x) } // Array access and anonymous class { null, new Printer() { void print() { Console.writeLine("\(__CLASS__).\(__PROC__)") } }, null }[1].print() // Call procedure with array, immediately after object instantiation Console.writeLine( new Object() { int sum(int[] list) { int s foreach x : list { s += x } return s } }.sum({ 1, 2, 3 }) ) } } |
Werbeanzeige