[Haskell] Pattern Matching
test foo bar = bar
значит то же самое, что
test x y = y
Matching the pattern var against a value v always succeeds and binds var to v.
http://www.haskell.org/onlinereport/exps.html#sect3.17.2
Matching the pattern var against a value v always succeeds and binds var to v.А как-нибудь можно, чтобы foo и bar брались снаружи?
http://www.haskell.org/onlinereport/exps.html#sect3.17.2
*Main> test foo bar
1
ты такое в какомнить другом языке видел что ли?
(макросы не считаются)
вот аналог на Си того что ты хошь
#include <stdio.h>
int foo = 0;
int bar = 1;
void test(int foo, int bar) {
printf("%d\n", bar);
}
int main {
test (1, 0);
}
А как-нибудь можно, чтобы foo и bar брались снаружи?А зачем?
Скорее так:void test(int foo, int bar) {
printf("%d\n", bar);
}
int test(int foo, int bar) {
return bar;
return foo;
}
А зачем?Например есть синонимы для каких-то констант, выписывать их в явном виде не хочется.
Например есть синонимы для каких-то констант, выписывать их в явном виде не хочется.Такая штука не подойдет?
data MyType = Foo | Bar | Value Int
test Foo Bar = Bar
test x _ = x
foo = 0
bar = 1
test x y = if (x,y) == (foo,bar) then y else x
А для чего именованная константа?
Оставить комментарий
Gaishnik
Вроде должно быть что test 1 0 = 1