LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Это паттерн матчинг более высокоуровневая абстракция.

Я же так и написал.

Но даже и в сишечке if не ниже уровнем switch-а, и наоборот.

Сейчас разница между ними стерта, но раньше switch предназначался для генерации таблиц переходов, что делает его явно более продвинутым инструментом.

Ну так очевидно же, надо брать современный полноценный системный язык

Ты кажется сути примера не понял, а теперь покажи mul для (i128, i128) -> i128. Так то если взять самый новый стандарт С, его можно написать:

typedef _BitInt(128) int128_t;
typedef _BitInt(256) int256_t;

int128_t mul(int128_t x, int128_t y) 
{
    return ((int256_t)x * y) >> 64;
}

Исправление MOPKOBKA, :

Это паттерн матчинг более высокоуровневая абстракция.

Я же так и написал.

Но даже и в сишечке if не ниже уровнем switch-а, и наоборот.

Сейчас разница между ними стерта, но раньше switch предназначался для генерации таблиц переходов, что делает его явно более продвинутым инструментом.

Ну так очевидно же, надо брать современный полноценный системный язык

Ты кажется сути примера не понял, а теперь покажи mul для (i128, i128) -> i128. Так то если взять самый новый стандарт С, его можно написать:

_BitInt(128) mul(_BitInt(128) x, _BitInt(128) y) 
{
    return ((_BitInt(256))x * y) >> 64;
}

Исходная версия MOPKOBKA, :

Это паттерн матчинг более высокоуровневая абстракция.

Я же так и написал.

Но даже и в сишечке if не ниже уровнем switch-а, и наоборот.

Сейчас разница между ними стерта, но раньше switch предназначался для генерации таблиц переходов, что делает его явно более продвинутым инструментом.

Ну так очевидно же, надо брать современный полноценный системный язык

Ты кажется сути примера не понял, а теперь покажи mul для (i128, i128) -> i128. Так то если взять самый новый стандарт С, его можно написать:

_BitInt(128) mul(_BitInt(128) x, _BitInt(128) y) 
{
    return ((_BitInt(256))x * y) >> 32;
}