Seite 2 von 2

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. ;-)