Здравствуйте, _d_m_, Вы писали:
___>Здравствуйте, catbert, Вы писали:
C>>Так нельзя
___>" ___>- Нажмите любую клавишу. ___>- Эту можно? ___>- Эту нет. ___>"
___>" ___>- Есть супер патерн матчинг. ___>- А так можно? ___>- Так нет. ___>"
___>
если бы была унификация было можно.
Здравствуйте, <Аноним>, Вы писали:
___>>Здравствуйте, catbert, Вы писали:
C>>>Так нельзя
___>>А почему со списками можно, а с массивами нельзя?
А>со списками тоже нельзя. Нужен цикл все равно.
Можно:
___>Только не пойму почему в выводе [("key2", 33), ("key3", 55)]. ___>Как получить 33?
переменной key присваивается голова списка ("key1", 1), а переменной y хвост [("key2", 33), ("key3", 55)]
тут ты разбираешь список на голову и хвост, а не кортеж списка
Здравствуйте, <Аноним>, Вы писали:
А>переменной key присваивается голова списка ("key1", 1), а переменной y хвост [("key2", 33), ("key3", 55)] А>тут ты разбираешь список на голову и хвост, а не кортеж списка А>func f(lst) А>{ А> | (key,y)::[] => WriteLine(key); А> | (key,y)::tail => {WriteLine(key);f(tail);} А>}
Ёперный театр. А синтаксис как у кортежа. Ну а как-бы я об этом узнал? Документации 0, в статьях загадочные примеры, по которым типа сразу все должно быть понятно. А в них тупо лупишься и не поймешь откуда взялся х, откуда этот head или этот tail — то ли это ключевые слова, то ли еще че. Статьи эти уже бесят: хопана, а здесь мы ставим волшебную черточку...
___>>Только не пойму почему в выводе [("key2", 33), ("key3", 55)]. ___>>Как получить 33?
А>переменной key присваивается голова списка ("key1", 1), а переменной y хвост [("key2", 33), ("key3", 55)]
И никакого ворнинга, что key и key это два разных человека...
Здравствуйте, _d_m_, Вы писали:
___>И никакого ворнинга, что key и key это два разных человека...
Никакого предупреждения и не должно быть. Заводить переменные с одинаковыми названиями является обычной практикой. Особенно в Немерле, где можно написать:
def x = "Hello World!";
Console.WriteLine(x.GetType());
def x = 2501;
Console.WriteLine(x.GetType());
Здравствуйте, Don Reba, Вы писали:
DR>Здравствуйте, _d_m_, Вы писали:
___>>И никакого ворнинга, что key и key это два разных человека...
DR>Никакого предупреждения и не должно быть. Заводить переменные с одинаковыми названиями является обычной практикой. Особенно в Немерле, где можно написать:
DR>
DR>def x = "Hello World!";
DR>Console.WriteLine(x.GetType());
DR>def x = 2501;
DR>Console.WriteLine(x.GetType());
DR>
DR>
DR>System.String
DR>System.Int32
Как минимум это не хорошо.
На счет автораскрытие кортежей и еквивалентности синтаксиса кортежей и списков... ПЛОХО
Здравствуйте, Don Reba, Вы писали:
DR>Здравствуйте, _d_m_, Вы писали:
___>>И никакого ворнинга, что key и key это два разных человека...
DR>Никакого предупреждения и не должно быть. Заводить переменные с одинаковыми названиями является обычной практикой.
А мужики то не знают! (ц)
А в каких языках этот косяк обычная практика?
Или так: если несколько языков обладают недостатком, то это становится нормальным?
int asd = 666;
while( false )
{
int asd = 555;
}
ошибка CS0136: Невозможно объявить локальную переменную с именем "asd" в этой области видимости, т.к. она придаст другое значение "asd", которая уже используется в области видимости "родительский или текущий" для обозначения чего-то другого