Seite 1 von 2

Verfasst: Sonntag 5. Oktober 2008, 18:26
von sea-live
Die letzten Antworten dürften einen neuling mit 10 post's etwas überfordern

Verfasst: Sonntag 5. Oktober 2008, 18:31
von lunar
Ja und? Er muss sie ja nicht lesen.

Auch hat das nichts mit "Neuling" oder der Anzahl der Posts zu tun, sondern einfach nur damit, ob man Haskell oder Scheme kann. Ich habe ein bisschen mehr als 10 Posts, die Haskell-Lösung erschließt sich mir trotzdem nicht, weil ich nun mal keine Ahnung von Haskell habe ;)

Verfasst: Sonntag 5. Oktober 2008, 19:06
von audax
You is not object? Haha!

Code: Alles auswählen

def all_in_string(a, b)
    b.split('').each{|c|
        if not a.include? c
            return false
        end }
    true
end

puts all_in_string("Foobar", "arb")
Irgendwas sagt mit, dass das zu umständlich ist Oo

Verfasst: Sonntag 5. Oktober 2008, 20:42
von Leonidas
lunar hat geschrieben:Ich habe ein bisschen mehr als 10 Posts, die Haskell-Lösung erschließt sich mir trotzdem nicht, weil ich nun mal keine Ahnung von Haskell habe ;)
Ja, das geht den meisten so, mich eingeschlossen. Die Haskell-Kundigen sind auch in dem aktiven Kern in der Minderzahl. Aber der Fairness halber muss ich sagen, dass ich die Assembler-Lösung auch nicht verstehe, da ich schlichtweg kein Assembler kann :D

sea-life, einige Leute haben einfach Spaß am programmieren und führen gerne auch alternative Lösungen vor. Ich finde solche Threads immer toll, weil man dann sieht, wie man auf andere Weise an das Problem herangehen kann. Lustig ist es auch, wenn auf eine Python-Hausaufgabe dann Lösungen in Self, Io etc. gepostet werden. Liegt aber vielleicht auch an meiner Art von Humor :)

Verfasst: Sonntag 5. Oktober 2008, 23:27
von Sandra
Vielen Dank!

Es sollte dann auch

Code: Alles auswählen

 f = all . flip elem
genügen ;)

mfg Sandra, die Haskell Expertin :lol:

Verfasst: Montag 6. Oktober 2008, 13:01
von BlackJack
Allerdings. Ich wollt's halt verständlich halten. ;-)

Die Signatur war bei mir ja auch unnötig einschränkend.

Code: Alles auswählen

f :: (Eq a) => [a] -> [a] -> Bool
f = all . flip elem

Verfasst: Montag 6. Oktober 2008, 13:05
von Y0Gi
Ah, das verstehe ich schon eher. Noch nicht sonderlich gut mein Haskell ist. Und wenn ich mir die paar Dutzend Möglichkeiten ansehe, in der man ein Problem in Haskell lösen kann (habe kürzlich eine Website gelesen, die die diversen Ansätze ausführt), dann ist da noch einiges vor mir ;)

Verfasst: Montag 6. Oktober 2008, 13:52
von keppla
wo wir bei ruby waren, ruby geht auch funktional

Code: Alles auswählen

def all_in_string(text, to_include)
   to_include.split("").map{ |c| text.include? c }.all?
end

Verfasst: Montag 6. Oktober 2008, 14:36
von BlackJack
Weil Io auch schon mal erwähnt wurde:

Code: Alles auswählen

#!/usr/bin/env io
f := method(characters, string,
    string foreach(c, characters contains(c) ifTrue(return true))
    false
)

f("tes", "test") println
f("tes", "hallo") println

Verfasst: Montag 6. Oktober 2008, 14:41
von lunar
Ich würde ja jetzt eine Lochkarten-Lösung entwerfen, nur lassen sich die so schlecht posten ...

Verfasst: Montag 6. Oktober 2008, 17:30
von audax

Code: Alles auswählen

use strict;
use warnings;

sub all_in_string {
    foreach (split //, $_[1]) {
        return 0 unless $_[0] =~ /$_/
    } 1; 
}

print "is in there\n" if all_in_string "Foobar", "raboF";
print "is not in there\n" unless all_in_string "Foobar", "xyz";
Um nochmal als Ketzer da zu stehen ;)

Verfasst: Montag 6. Oktober 2008, 17:40
von Leonidas
lunar hat geschrieben:Ich würde ja jetzt eine Lochkarten-Lösung entwerfen, nur lassen sich die so schlecht posten ...
Ich wünsche mit eine Lösung von WoNaDo, mit turingvollständigen Regulären Ausdrücken in Oniguruma ;)

Verfasst: Montag 6. Oktober 2008, 17:48
von lunar
Eine Whitespace-Lösung wäre auch interessant ...

Verfasst: Montag 6. Oktober 2008, 18:37
von Hyperion
lunar hat geschrieben:Eine Whitespace-Lösung wäre auch interessant ...
... von wo es nicht mehr weit zur Brainfuck-Lösung wäre :-D

Verfasst: Montag 6. Oktober 2008, 19:50
von birkenfeld
BlackJack hat geschrieben:Allerdings. Ich wollt's halt verständlich halten. ;-)

Die Signatur war bei mir ja auch unnötig einschränkend.

Code: Alles auswählen

f :: (Eq a) => [a] -> [a] -> Bool
f = all . flip elem
Was haltet ihr denn vom lesbareren und trotzdem recht kurzen

Code: Alles auswählen

f cs = all (`elem` cs)
?

Verfasst: Montag 6. Oktober 2008, 20:18
von BlackJack
Och lesbar ist langweilig. Wenn ich lesbar haben will, nehme ich Python. ;-)