5. Wikipedia
Functional reactive programming (FRP) is a programming
paradigm for reactive programming (asynchronous dataflow
programming) using the building blocks of functional
programming (e.g. map, reduce, filter).
@EliSawic
16. Imperative
let array = [0, 1, 2, 3, 4, 5]
var evenNumbers = [Int]()
for element in array {
if element % 2 == 0 {
evenNumbers.append(element)
}
}
@EliSawic
106. Is name valid?
let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
@EliSawic
107. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
@EliSawic
108. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
@EliSawic
109. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
Eli true
@EliSawic
110. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
Eli true
Elia true
Elias true
@EliSawic
111. let isValidNameSignal = nameSignal.map { (name) -> Bool in
return name.characters.count > 2
}
nameSignal isValidNameSignal
E false
El false
Eli true
Elia true
Elias true
Eliasz true
@EliSawic
112. Is surname valid?
let isValidSurnameSignal = surnameSignal.map { (surname) -> Bool in
return surname.characters.count > 2
}
@EliSawic
113. Is mail valid?
let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
@EliSawic
114. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
@EliSawic
115. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
@EliSawic
116. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
@EliSawic
117. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
a@b. false
@EliSawic
118. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
a@b. false
a@b.c false
@EliSawic
119. let isValidMailSignal = mailSignal.map { (mail) -> Bool in
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluateWithObject(mail)
}
mailSignal isValidMailSignal
a false
a@ false
a@b false
a@b. false
a@b.c false
a@b.cd true
@EliSawic