[F#] константы
От: samius Япония http://sams-tricks.blogspot.com
Дата: 25.09.09 18:41
Оценка:
Захотелось объявить константу для использования в паттерн матчинге в том числе:
let constant1 = -1
let constant2 = -2
match x with
| constant1 -> ...
| constant2 -> ...

С разбегу не вышло, выходит что constant1 внутри match — местячковый идентификатор. Что посоветуете кроме такого варианта:
match x with
| v when v = constant1 -> ...
| v when v = constant2 -> ...
Re: [<Literal>]?
От: Qbit86 Кипр
Дата: 25.09.09 19:03
Оценка: 8 (1)
Что посоветуете кроме такого варианта...

[&lt;Literal&gt;]?
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: [<Literal>]?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 25.09.09 19:05
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Что посоветуете кроме такого варианта...


Q>[&lt;Literal&gt;]?

Благодарю
Re: [F#] константы
От: nikov США http://www.linkedin.com/in/nikov
Дата: 25.09.09 19:32
Оценка: +1
Здравствуйте, samius, Вы писали:

S>С разбегу не вышло, выходит что constant1 внутри match — местячковый идентификатор. Что посоветуете кроме такого варианта:


А вот в Scala можно в паттернах использовать внешние переменные, если взять их в обратные апострофы:
def Foo(x : Int, y : Int) : Boolean = x match { 
    case `y` => true
    case _ => false
}


По-моему, очень полезная фича.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.