Соответствие шаблону Seq в Haskell

Это похоже на ответ Эмили, однако, поскольку вы специально спросили, как преобразовать NSRange в Range<String.Index>, вы сделали бы что-то вроде этого:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

     let start = advance(textField.text.startIndex, range.location) 
     let end = advance(start, range.length) 
     let swiftRange = Range<String.Index>(start: start, end: end) 
     ...

}
15
задан Bill 16 January 2010 в 16:20
поделиться

2 ответа

EPHEMIDED находится на правом пути с моделями зрения, но я думаю, что есть способ сделать это, что на самом деле довольно приятно. Данные. Следации фактически написаны с видами, и вы должны использовать либо viewl или ViewR типы, чтобы набрать шаблон на структуре данных.

{-# LANGUAGE ViewPatterns #-}

floodFillWorker image _ _ (Seq.viewl -> EmptyL) = image
floodFillWorker image base tolerance queue = doSomeWork image
17
ответ дан 1 December 2019 в 03:14
поделиться

У вас Использование моделей просмотра вместо охранников, но на самом деле это не лучше (IMO). Охранники выглядят хорошо для меня ...

{-# LANGUAGE ViewPatterns #-}

floodFillWorker image _ _ (Seq.null -> True) = image
floodFillWorker image base tolerance queue = doSomeWork image
6
ответ дан 1 December 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: