SlideShare a Scribd company logo
//
var name = "Suyeol Jeon"
//
let birthyear = 1995
//
name = " "
//
birthyear = 2000
! Cannot assign to value: 'birthyear' is a 'let' constant
var name: String = "Suyeol Jeon"
let birthyear: Int = 1995
var height: Float = 180.1
var name: String = "Suyeol Jeon"
let birthyear: Int = 1995
var height: Float = 180.1
"ABC" String
123 Int
[String] [String: String]
let languages = [
"Swift",
"Objective-C",
"Python",
]
var capitals = [
" ": " ",
" ": " ",
" ": " ",
]
if for switch
for _ in 0..<10 {
print("Hello!")
}
• for i in 0..<10 

i
•
switch age {
case 8..<14:
student = " "
case 14..<17:
student = " "
case 17..<20:
student = " "
default:
student = " "
}
" "
" "
"" // ?
" "
"" // ?
" "
nil //
123
0 //
nil //
var name: String = " "
name = nil
! Nil cannot be assigned to type 'String'
String nil
var name: String? = " "
name = nil
? String
nil
var email: String?
print(email) // nil
email = "devxoul@gmail.com"
print(email) // Optional("dev...com")
String? String
let optional: String? = "Hello"
let required: String = optional
! Value of optional type 'String?' not unwrapped; did you
mean to use '!' or '?'?
String? String

 

String String?
"A" 10
nil
let optionalName: String? = " "
if let name = optionalName {
print(name)
}
let optionalName: String? = " "
if let name = optionalName {
print(name)
}
let optionalName: String? = " "
if let name = optionalName {
print(name)
}
let optionalName: String? = " "
if let name = optionalName {
print(name)
}
" "
let optionalName: String? = " "
if let name = optionalName {
print(name)
}
let name: String = " "
let optionalName: String? = " "
if let name = optionalName {
print(name) //
}
let optionalName: String? = " "
if let name = optionalName {
print(name) //
}
let optionalName: String?
if let name = optionalName {
print(name)
}
let optionalName: String?
if let name = optionalName {
print(name)
}
let optionalName: String?
if let name = optionalName {
print(name)
}
nil
let optionalName: String?
if let name = optionalName {
print(name)
}
if let name = optionalName,
let age = optionalAge {
print(name, age)
}
if let age = optionalAge
where age >= 20 {
print(age)
}
where


if let arr = optionalArray {
print(arr.isEmpty)
} else {
print(false)
}
print(optionalArray?.isEmpty == true)
print(optionalArray?.isEmpty == true)
print(optionalArray?.isEmpty == true)
print(optionalArray?.isEmpty == true)
print(optionalArray?.isEmpty == true)
print(optionalArray?.isEmpty == true)
let optionalName: String? = " "
print(optionalName) // Optional(" ")
print(optionalName!) //
var email: String! = " "
print(email) //
nil
func hello(name: String, time: Int) -> String {
var string = ""
for _ in 0..<time {
string += "(name) !n"
}
return string
}
func hello(name: String, time: Int) -> String {
var string = ""
for _ in 0..<time {
string += "(name) !n"
}
return string
}
hello(" ", time: 3)
func hello(name: String, time: Int) -> String {
var string = ""
for _ in 0..<time {
string += "(name) !n"
}
return string
}
hello(" ", time: 3)
func hello(name: String, numberOfTimes time: Int) -> Void {
print(time)
}
hello(" ", numberOfTimes: 3)
func hello(name: String, numberOfTimes time: Int) -> Void {
print(time)
}
hello(" ", numberOfTimes: 3)
func hello(withName name: String,
numberOfTimes time: Int) -> Void {
print(time)
}
hello(withName: " ", numberOfTimes: 3)
func hello(withName name: String,
numberOfTimes time: Int) -> Void {
print(time)
}
hello(withName: " ", numberOfTimes: 3)
func hello(name: String, _ time: Int) -> Void {
print(time)
}
hello(" ", 3)
func hello(name: String, time: Int = 1) -> Void {
print(time)
}
hello(" ")
func sum(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
sum(1, 2)
sum(3, 4, 5)
func hello(name: String, time: Int) {
func message(name: String) {
return "(name) !"
}
for _ in 0..<time {
print message(name)
}
}
func helloGenerator(message: String) -> String -> String {
func hello(name: String) -> String {
return name + message
}
return hello
}
let hello = helloGenerator(" !")
hello(" ")
func helloGenerator(message: String) -> String -> String {
func hello(name: String) -> String {
return name + message
}
return hello
}
let hello = helloGenerator(" !")
hello(" ")
func helloGenerator(message: String) -> (String, String) -> String {
func hello(firstName: String, lastName: String) -> String {
return lastName + firstName + message
}
return hello
}
let hello = helloGenerator(" !")
hello(" ", " ")
func helloGenerator(message: String) -> (String, String) -> String {
func hello(firstName: String, lastName: String) -> String {
return lastName + firstName + message
}
return hello
}
let hello = helloGenerator(" !")
hello(" ", " ")
func helloGenerator(message: String) -> (String, String) -> String {
return { (firstName: String, lastName: String) -> String in
return lastName + firstName + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
func hello(firstName: String, lastName: String) -> String {
return lastName + firstName + message
}
return hello
}
func helloGenerator(message: String) -> (String, String) -> String {
return { (firstName: String, lastName: String) -> String in
return lastName + firstName + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
return { (firstName: String, lastName: String) -> String in
return lastName + firstName + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
return { firstName , lastName in
return lastName + firstName + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
return { firstName, lastName in
return lastName + firstName + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
return { firstName, lastName in
return lastName + firstName + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
return {
return $1 + $0 + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
return {
return $1 + $0 + message
}
}
func helloGenerator(message: String) -> (String, String) -> String {
return { $1 + $0 + message }
}
func helloGenerator(message: String) -> (String, String) -> String {
return {
return $1 + $0 + message
}
}
let hello: (String, String) -> String = { $1 + $0 + " !" }
hello(" ", " ")
let hello: ((String, String) -> String)? = nil
hello?(" ", " ")
func manipulateNumber(number: Int,
usingBlock block: Int -> Int) -> Int {
return block(number)
}
manipulateNumber(10, usingBlock: { (number: Int) -> Int in
return number * 2
})
manipulateNumber(10, usingBlock: {
$0 * 2
})
manipulateNumber(10, usingBlock: { (number: Int) -> Int in
return number * 2
})
manipulateNumber(10) {
$0 * 2
}
let numbers = [1, 3, 2, 6, 7, 5, 8, 4]
let sortedNumbers = numbers.sort { $0 < $1 }
print(sortedNumbers) // [1, 2, 3, 4, 5, 6, 7, 8]
let evens = numbers.filter { $0 % 2 == 0 }
print(evens) // [2, 6, 8, 4]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
let arr2 = arr1.map { $0 * 2 }
// [2, 6, 12, 4, 14, 18]
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
0 1+
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
0 1+ = 1
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
1 3
0 1+ = 1
+
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
1 3
0 1+ = 1
+ = 4
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
1 3
0 1+ = 1
+ = 4
4 6+
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
1 3
0 1+ = 1
+ = 4
4 6+ = 10
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: { $0 + $1 }) // 28
1 3
0 1+ = 1
+ = 4
4 6+ = 10
let arr1 = [1, 3, 6, 2, 7, 9]
arr1.reduce(0, combine: +) // 28
class Dog {
var name: String?
var age: Int?
func simpleDescription() -> String {
return "" (self.name)"
}
}
struct Coffee {
var name: String?
var size: String?
func simpleDescription() -> String {
return "☕ (self.name)"
}
}
class Dog {
var name: String?
var age: Int?
init() {
self.age = 0 //
}
}
class Dog {
var name: String //
var age: Int?
init() {
self.age = 0
}
} ! Return from initializer without initializing all stored properties
class Dog {
var name: String = " "
var age: Int?
init() {
self.age = 0
}
}
class Dog: Animal {
var name: String?
var age: Int
override init() {
self.age = 0 //
super.init() //
// `self`
print(self.simpleDescription())
}
func simpleDescription() -> String {
return "" (self.name)"
}
}
struct Hex {
var decimal: Int?
}
struct Hex {
var hexString: String? {
get {
if let decimal = self.decimal {
return String(decimal, radix: 16)
} else {
return nil
}
}
set {
if let newValue = newValue {
self.decimal = Int(newValue, radix: 16)
} else {
self.decimal = nil
}
}
}
}
struct Hex {
var hexCode: String? {
if let hex = self.hexString {
return "0x" + hex
}
return nil
}
}
struct Hex {
var decimal: Int? {
willSet {
print("(self.decimal) (newValue) .")
}
didSet {
print("(oldValue) (self.decimal) .")
}
}
}
var coffeeInfo = (" ", 5100)
coffeeInfo // (String, Int)
coffeeInfo.0 //
coffeeInfo.1 // 5100
coffeeInfo.1 = 5100
var namedCoffeeInfo = (coffee: " ",
price: 5100)
namedCoffeeInfo.coffee //
namedCoffeeInfo.price // 5100
namedCoffeeInfo.price = 5100
let (coffee, price) = (" ", 5100)
coffee //
price // 5100
let (_, latteSize, lattePrice) = (" ",
"Venti", 5600)
latteSize // Venti
lattePrice // 5600
func coffeeInfoForName(name: String) -> (name: String, price: Int)? {
let coffeeInfoList: [(name: String, price: Int)] = [
(" ", 5100),
(" ", 5600),
]
for coffeeInfo in coffeeInfoList {
if coffeeInfo.name == name {
return coffeeInfo
}
}
return nil
}
coffeeInfoForName(" ")?.price // 5100
coffeeInfoForName(" ")?.price // nil
enum Month: Int {
case January = 1
case February
case March
case April
case May
case June
case July
case August
case September
case October
case November
case December
}
enum Month: Int {
case ...
func simpleDescription() -> String {
switch self {
case .January:
return "1 "
case .February:
return "2 "
case ...
return "..."
case .December:
return "12 "
}
}
}
let december = Month.December
print(december.simpleDescription()) // 12
print(december.rawValue) // 12
let october = Month(rawValue: 10)
print(october) // Optional(Month.October)
enum IssueState: String {
case Open = "open"
case Closed = "closed"
}
let state = IssueState(rawValue: "open")
print(state) // Optional(IssueState.Open)
enum Spoon {
case Dirt
case Bronze
case Silver
case Gold
}
enum Spoon {
case Dirt
case Bronze
case Silver
case Gold
}
let spoon: Spoon = .Gold
func doSomething(spoon: Spoon) {
// ...
}
doSomething(.Silver)
enum Error {
case InvalidParameter(String, String)
case Timeout
}
let error = Error.InvalidParameter(
"email",
" ."
)
if case .InvalidParameter(let field, let message) = error {
print(field) // email
print(message) // .
}
switch error {
case .InvalidParameter(let field, let message):
print(field) // email
print(message) // .
default:
break
}
public enum Optional<Wrapped> {
case None
case Some(Wrapped)
}
let age: Int? = 20
switch age {
case .None: // `nil`
print(" .")
case .Some(let x) where x < 20:
print(" ")
case .Some(let x) where x < 65:
print(" ")
default:
print(" ")
}
/// .
protocol Sendable {
var from: String? { get }
var to: String { get }
func send()
}
struct Mail: Sendable {
var from: String?
var to: String
func send() {
print("Send a mail from (self.from) to (self.to)")
}
}
func sendAnything<T: Sendable>(sendable: T) {
sendable.send()
}
protocol Messagable {
var message: String? { get }
}
protocol Sendable: Messagable {
// ...
}
let anyNumber: Any = 10
let anyString: Any = "Hi"
let anyInstance: AnyObject = Dog()
extension String {
var length: Int {
return self.characters.count
}
func reverse() -> String {
return self.characters.reverse()
.map { String($0) }
.joinWithSeparator("")
}
}




protocol Sendable {
var from: String? { get }
var to: String { get }
func send()
}
extension Sendable {
func debug() {
print("(self.from) -> (self.to)")
}
}





More Related Content

What's hot

Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2
Evgeny Borisov
 
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFrom Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
Fabio Collini
 
Ruby is Awesome
Ruby is AwesomeRuby is Awesome
Ruby is Awesome
Astrails
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order Functions
David Golden
 
Elm: give it a try
Elm: give it a tryElm: give it a try
Elm: give it a try
Eugene Zharkov
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
Skills Matter
 
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...
takeoutweight
 
여자개발자모임터 6주년 개발 세미나 - Scala Language
여자개발자모임터 6주년 개발 세미나 - Scala Language여자개발자모임터 6주년 개발 세미나 - Scala Language
여자개발자모임터 6주년 개발 세미나 - Scala Language
Ashal aka JOKER
 
Pre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to ElixirPre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to Elixir
Paweł Dawczak
 
Damn Fine CoffeeScript
Damn Fine CoffeeScriptDamn Fine CoffeeScript
Damn Fine CoffeeScript
niklal
 
A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009
Jordan Baker
 
Template Haskell Tutorial
Template Haskell TutorialTemplate Haskell Tutorial
Template Haskell Tutorialkizzx2
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
Scott Leberknight
 
Using Scala Slick at FortyTwo
Using Scala Slick at FortyTwoUsing Scala Slick at FortyTwo
Using Scala Slick at FortyTwo
Eishay Smith
 
mobl - model-driven engineering lecture
mobl - model-driven engineering lecturemobl - model-driven engineering lecture
mobl - model-driven engineering lecturezefhemel
 
Cycle.js: Functional and Reactive
Cycle.js: Functional and ReactiveCycle.js: Functional and Reactive
Cycle.js: Functional and Reactive
Eugene Zharkov
 
Groovy collection api
Groovy collection apiGroovy collection api
Groovy collection api
trygvea
 
Lekcja stylu
Lekcja styluLekcja stylu
Lekcja stylu
Wiktor Gworek
 

What's hot (20)

interfaz
interfazinterfaz
interfaz
 
Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2Groovy puzzlers jug-moscow-part 2
Groovy puzzlers jug-moscow-part 2
 
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf MilanFrom Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan
 
Ruby is Awesome
Ruby is AwesomeRuby is Awesome
Ruby is Awesome
 
Taking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order FunctionsTaking Perl to Eleven with Higher-Order Functions
Taking Perl to Eleven with Higher-Order Functions
 
Elm: give it a try
Elm: give it a tryElm: give it a try
Elm: give it a try
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...
 
여자개발자모임터 6주년 개발 세미나 - Scala Language
여자개발자모임터 6주년 개발 세미나 - Scala Language여자개발자모임터 6주년 개발 세미나 - Scala Language
여자개발자모임터 6주년 개발 세미나 - Scala Language
 
Pre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to ElixirPre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to Elixir
 
Damn Fine CoffeeScript
Damn Fine CoffeeScriptDamn Fine CoffeeScript
Damn Fine CoffeeScript
 
A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009A Taste of Python - Devdays Toronto 2009
A Taste of Python - Devdays Toronto 2009
 
Template Haskell Tutorial
Template Haskell TutorialTemplate Haskell Tutorial
Template Haskell Tutorial
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
Using Scala Slick at FortyTwo
Using Scala Slick at FortyTwoUsing Scala Slick at FortyTwo
Using Scala Slick at FortyTwo
 
mobl - model-driven engineering lecture
mobl - model-driven engineering lecturemobl - model-driven engineering lecture
mobl - model-driven engineering lecture
 
Cycle.js: Functional and Reactive
Cycle.js: Functional and ReactiveCycle.js: Functional and Reactive
Cycle.js: Functional and Reactive
 
Python 1
Python 1Python 1
Python 1
 
Groovy collection api
Groovy collection apiGroovy collection api
Groovy collection api
 
Lekcja stylu
Lekcja styluLekcja stylu
Lekcja stylu
 

Similar to Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기

Derping With Kotlin
Derping With KotlinDerping With Kotlin
Derping With Kotlin
Ross Tuck
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB jhchabran
 
Pooya Khaloo Presentation on IWMC 2015
Pooya Khaloo Presentation on IWMC 2015Pooya Khaloo Presentation on IWMC 2015
Pooya Khaloo Presentation on IWMC 2015
Iran Entrepreneurship Association
 
A swift introduction to Swift
A swift introduction to SwiftA swift introduction to Swift
A swift introduction to Swift
Giordano Scalzo
 
Introduction to Swift programming language.
Introduction to Swift programming language.Introduction to Swift programming language.
Introduction to Swift programming language.
Icalia Labs
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
Aleksandar Prokopec
 
Swift 5.1 Language Guide Notes.pdf
Swift 5.1 Language Guide Notes.pdfSwift 5.1 Language Guide Notes.pdf
Swift 5.1 Language Guide Notes.pdf
JkPoppy
 
ddd+scala
ddd+scaladdd+scala
ddd+scala
潤一 加藤
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tour
Simon Proctor
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tour
Simon Proctor
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with Groovy
Arturo Herrero
 
Idiomatic Kotlin
Idiomatic KotlinIdiomatic Kotlin
Idiomatic Kotlin
intelliyole
 
Swift 함수 커링 사용하기
Swift 함수 커링 사용하기Swift 함수 커링 사용하기
Swift 함수 커링 사용하기
진성 오
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to PerlSway Wang
 
Benefits of Kotlin
Benefits of KotlinBenefits of Kotlin
Benefits of Kotlin
Benjamin Waye
 
Scala in a Java 8 World
Scala in a Java 8 WorldScala in a Java 8 World
Scala in a Java 8 World
Daniel Blyth
 
Php functions
Php functionsPhp functions
Php functions
JIGAR MAKHIJA
 
An Intro To ES6
An Intro To ES6An Intro To ES6
An Intro To ES6
FITC
 

Similar to Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기 (20)

Scala 2 + 2 > 4
Scala 2 + 2 > 4Scala 2 + 2 > 4
Scala 2 + 2 > 4
 
Derping With Kotlin
Derping With KotlinDerping With Kotlin
Derping With Kotlin
 
Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB Introduction à CoffeeScript pour ParisRB
Introduction à CoffeeScript pour ParisRB
 
Pooya Khaloo Presentation on IWMC 2015
Pooya Khaloo Presentation on IWMC 2015Pooya Khaloo Presentation on IWMC 2015
Pooya Khaloo Presentation on IWMC 2015
 
A swift introduction to Swift
A swift introduction to SwiftA swift introduction to Swift
A swift introduction to Swift
 
Introduction to Swift programming language.
Introduction to Swift programming language.Introduction to Swift programming language.
Introduction to Swift programming language.
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
Swift 5.1 Language Guide Notes.pdf
Swift 5.1 Language Guide Notes.pdfSwift 5.1 Language Guide Notes.pdf
Swift 5.1 Language Guide Notes.pdf
 
ddd+scala
ddd+scaladdd+scala
ddd+scala
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tour
 
Perl6 a whistle stop tour
Perl6 a whistle stop tourPerl6 a whistle stop tour
Perl6 a whistle stop tour
 
Functional Programming with Groovy
Functional Programming with GroovyFunctional Programming with Groovy
Functional Programming with Groovy
 
Idiomatic Kotlin
Idiomatic KotlinIdiomatic Kotlin
Idiomatic Kotlin
 
Swift 함수 커링 사용하기
Swift 함수 커링 사용하기Swift 함수 커링 사용하기
Swift 함수 커링 사용하기
 
Introduction to Perl
Introduction to PerlIntroduction to Perl
Introduction to Perl
 
Benefits of Kotlin
Benefits of KotlinBenefits of Kotlin
Benefits of Kotlin
 
Scala in a Java 8 World
Scala in a Java 8 WorldScala in a Java 8 World
Scala in a Java 8 World
 
Perl6 grammars
Perl6 grammarsPerl6 grammars
Perl6 grammars
 
Php functions
Php functionsPhp functions
Php functions
 
An Intro To ES6
An Intro To ES6An Intro To ES6
An Intro To ES6
 

More from Suyeol Jeon

Let's TDD
Let's TDDLet's TDD
Let's TDD
Suyeol Jeon
 
Hello, ReactorKit 
Hello, ReactorKit Hello, ReactorKit 
Hello, ReactorKit 
Suyeol Jeon
 
Building Funnels with Google BigQuery
Building Funnels with Google BigQueryBuilding Funnels with Google BigQuery
Building Funnels with Google BigQuery
Suyeol Jeon
 
ReactorKit으로 단방향 반응형 앱 만들기
ReactorKit으로 단방향 반응형 앱 만들기ReactorKit으로 단방향 반응형 앱 만들기
ReactorKit으로 단방향 반응형 앱 만들기
Suyeol Jeon
 
Evermind
EvermindEvermind
Evermind
Suyeol Jeon
 
StyleShare 2014년 8월 관점공유 - 전수열
StyleShare 2014년 8월 관점공유 - 전수열StyleShare 2014년 8월 관점공유 - 전수열
StyleShare 2014년 8월 관점공유 - 전수열
Suyeol Jeon
 
Present your presentation
Present your presentationPresent your presentation
Present your presentationSuyeol Jeon
 
Joyfl 창업이야기.ssul
Joyfl 창업이야기.ssulJoyfl 창업이야기.ssul
Joyfl 창업이야기.ssul
Suyeol Jeon
 
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자Suyeol Jeon
 
Evermind (2차 평가)
Evermind (2차 평가)Evermind (2차 평가)
Evermind (2차 평가)
Suyeol Jeon
 
I'm Traveling
I'm TravelingI'm Traveling
I'm Traveling
Suyeol Jeon
 

More from Suyeol Jeon (11)

Let's TDD
Let's TDDLet's TDD
Let's TDD
 
Hello, ReactorKit 
Hello, ReactorKit Hello, ReactorKit 
Hello, ReactorKit 
 
Building Funnels with Google BigQuery
Building Funnels with Google BigQueryBuilding Funnels with Google BigQuery
Building Funnels with Google BigQuery
 
ReactorKit으로 단방향 반응형 앱 만들기
ReactorKit으로 단방향 반응형 앱 만들기ReactorKit으로 단방향 반응형 앱 만들기
ReactorKit으로 단방향 반응형 앱 만들기
 
Evermind
EvermindEvermind
Evermind
 
StyleShare 2014년 8월 관점공유 - 전수열
StyleShare 2014년 8월 관점공유 - 전수열StyleShare 2014년 8월 관점공유 - 전수열
StyleShare 2014년 8월 관점공유 - 전수열
 
Present your presentation
Present your presentationPresent your presentation
Present your presentation
 
Joyfl 창업이야기.ssul
Joyfl 창업이야기.ssulJoyfl 창업이야기.ssul
Joyfl 창업이야기.ssul
 
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자
좋은 디자이너, 나쁜 프로젝트매니저, 이상한 개발자
 
Evermind (2차 평가)
Evermind (2차 평가)Evermind (2차 평가)
Evermind (2차 평가)
 
I'm Traveling
I'm TravelingI'm Traveling
I'm Traveling
 

Recently uploaded

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 

Recently uploaded (20)

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 

Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기