Skip to content

Instantly share code, notes, and snippets.

@ichistmeinname
Created February 5, 2014 10:09
Show Gist options
  • Save ichistmeinname/8820568 to your computer and use it in GitHub Desktop.
Save ichistmeinname/8820568 to your computer and use it in GitHub Desktop.
# a ist ein eindimensionales array
def removeCell(a,k)
a = a[0,k] + a[k+1,a.size-1];
end;
#p(removeCell([1,2,3,4], 3));
# [1,2,3];
#p("Hallo Welt"[6,4]);
# a ist Array
# und k der Index des zu verwendenen Schlüssels in a[i] für alle i von 0 bis a.size-1
def arrayToHash(a,k)
hash = {};
for i in 0..a.size-1 do
key = a[i][k];
#puts("Key: " + key.to_s());
# value entspricht Array `a` ohne den Wert an Index `k`
value = removeCell(a[i],k);
#print("Value: ");
#p(value);
# einfügen in hash
# Variante 1:
# hash[key] = value;
# Variante 2:
# hash.[]=(key,value);
# Variante 3:
hash.store(key,value);
end;
return hash;
end;
def addCell(a,k,value)
return(a[0,k] + [value] + a[k,a.size-k]);
end;
#a = [1,2,3];
#p(a[0,0]);
#p(a[0,a.size]);
def hashToArray(h,k)
array = [];
for key in h.each_key
valueArray = h[key];
newValue = addCell(valueArray,k,key);
array = array + [newValue];
end;
return array;
end;
a = [["Mustermann","Max",1234],["Exemplaris","Emilie",7890]];
#p(a);
#p(arrayToHash(a,2));
#h = {1234=>["Mustermann","Max"], 7890=>["Exemplaris","Emilie"]};
#p(h);
#p(hashToArray(h,0));
#p(arrayToHash(hashToArray(h,1),1) == h);
#p(hashToArray(arrayToHash(a,2),2) == a);
# filter auf array
def filter_with_array(a)
b = []; # neues Array
for i in 0..a.size-1 do
if yield a[i] then
b = b + [a[i]];
end;
end;
return b;
end;
h = [10,11,12,3];
newH = filter_with_array(h) {|var| var < 10};
#p(newH);
# Aufruf von lambda-Funktionen
#inc = lambda {|var| var + 1};
#p(inc.call(5));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment