Scala에서 카레로 경력 쌓기

게시 됨: 2020-07-06

목차

스칼라 소개

프로그래밍 언어인 Scala는 Martin Odersky와 그의 연구 그룹이 2003년에 개발했습니다. Scala의 개발은 빅 데이터 세계의 혁명이었습니다. 그것은 다음 세대를 위해 세상을 바꿀 매우 견고하고 가치 있는 언어입니다. 그것은 매우 빠르고 능숙하게 만드는 컴파일러 기반입니다.

Scala의 중요한 부분은 JVM(Java Virtual Machine) 입니다. 스칼라 코드는 먼저 스칼라 컴파일러에 의해 축적되고 이에 상응하는 바이트 코드가 생성된 다음 자바 가상 머신으로 이동하여 수율을 생성합니다. 이러한 맥락에서 스칼라는 빅데이터의 거대한 척도를 다루기 위한 진보의 길로 접어들었다.

프로그래밍 커뮤니티에서 Scala가 열광하는 이유는 무엇입니까?

스칼라는 다양한 프로그래머가 선호하는 몇 가지 이유 이상을 가지고 있습니다. 여기에서 그 중 몇 가지를 논의해 보겠습니다.

다중 패러다임 언어입니다.

Scala는 기능 프로그래밍(FP)과 객체 지향 프로그래밍(OOP)이라는 두 가지 프로그래밍 패러다임을 뒷받침할 만큼 충분히 유능합니다.

간결한 구문

Scala라고도 하는 Scala의 컴파일러는 매우 유능하며 예상보다 많은 성능을 발휘할 수 있습니다. 몇 가지 예를 들면 hasCode(), equals(), toString() 등을 생성할 수 있습니다.

배우기 쉬움

스칼라는 객체지향 프로그래밍을 지원하기 때문에 자바에 비해 프로그래머가 배우기 비교적 쉽다. 빠르게 성장하는 온라인 커뮤니티와 함께 ​​Scala 포럼은 점점 더 자주 발생하고 있습니다. 이것의 주요 부분은 깔끔한 구문과 함께 훌륭한 라이브러리가 있기 때문입니다. 프로그래머가 함수형 프로그래밍을 통해 자신의 방식을 조정하고 배우는 동안, 그들은 여전히 ​​기존의 객체 지향 프로그래밍 기술을 사용하고 스칼라에서 무언가를 구축할 수 있습니다.

배우기: Python은 객체 지향 언어입니까?

새로운 직업 기회

방대한 확장성으로 인해 Scala는 이제 업계에서 점점 더 수요가 증가하고 있습니다. Twitter, Quora, LinkedIn 등과 같은 일류 브랜드가 Scala로 이전하면서 Scala에 능숙한 코더를 찾고 있음이 분명합니다. Scala가 다른 산업의 다른 주요 회사에 필요한 시간이 되는 것은 시간 문제일 뿐입니다.

정적으로 입력됨

Scala 컴파일러는 가능한 한 최대한 유형 추론을 사용하므로 동적으로 느껴지지만 Scala는 체계적으로 정적으로 유형이 지정됩니다. 이를 통해 스칼라의 변수 및 함수에 대한 유형 추론이 가능합니다.

이제 Scala가 무엇인지 이해했으므로 Scala로 이동하여 카레링을 이해해 보겠습니다 .

스칼라에서 카레

Currying은 결합 논리학 연구로 유명한 미국 수학자 Haskell Curry의 이름을 따서 명명되었습니다.

Scala에서 Currying은 각각 고독한 기능을 가진 기능 그룹을 평가하기 위해 다양한 인수를 취하는 기능 평가를 해석하는 전략으로 정의할 수 있습니다.

수학적으로 다음과 같이 쓸 수 있습니다.

f1 = f(a)

f2 = f1(b)

결과 = f2(c)

그리고 이에 대한 의사 코드는 다음과 같습니다.

결과 = f(a)(b)(c)

카레의 구문

Scala에서 커링 을 수행하는 데 사용되는 구문 은 다음과 같습니다.

def 곱하기(a:Int)(b:Int) = a*b

다음과 같이 작성할 수도 있습니다.

def 곱하기(a:Int) = (b:Int) => a*b

읽기: 인도의 Java 개발자 급여: 신입 및 경력자용

카레 함수를 호출하는 방법

스칼라에서 커링 함수를 호출하기 위해서는 위의 방정식에서 언급한 'a ' 와 ' b' 변수에 값을 할당해야 합니다.

부분적용 함수란?

원천

함수가 호출되면 인수 집합에 함수를 적용하기 위해 수행됩니다. 예상되는 모든 인수를 전달하는 경우 함수를 완전히 적용하게 됩니다. 몇 개의 인수만 보내면 부분적으로 적용된 함수가 반환됩니다. 이렇게 하면 몇 가지 인수를 제한하고 나머지는 나중에 채울 수 있습니다.

부분적으로 적용된 기능의 예 –

1단계: 여러 매개변수로 함수 정의

스칼라> def plus(a: int)(b: int) = a + b

더하기: (a: 정수)(b: 정수) 정수

2단계: 변수 ' 스칼라> def X = X(2)(_)

X: 정수 => 정수

여기서 출력은 int => int 유형의 새 함수 'X'를 만듭니다.

여기서 X는 다음과 같이 쓸 수 있습니다.

def X(b:int) = 2 + b

위의 방정식이 나타내는 것은 X가 초기 int 값 2로 시드되면 추가할 수 있는 다른 int 값을 기다리는 것입니다.

요약하자면 부분적으로 적용된 기능은 다음과 같은 기능을 제공합니다.

  • 당신은 일반적인 기능을 구성합니다.
  • 일반 기능에서 특정 기능을 만듭니다.
  • 모든 것에도 불구하고 두 기능에 모두 액세스할 수 있습니다.
  • 새 함수를 생성하기 위해 코드를 복사하여 붙여넣을 필요가 없으므로 코드를 건조하게 유지합니다.

읽어보기: 초보자를 위한 27가지 Scala 인터뷰 질문 및 답변

카레와 부분 응용 함수(PAF) 비교

카레와 PAF는 밀접한 관련이 있습니다. Currying 함수와 부분적으로 적용된 함수는 동등하게 보일 수 있습니다. 둘 다 함수를 인수가 더 적은 함수로 변환합니다. 그러나 그들 사이에는 차이점이 있습니다.

  • Scala에서 Currying은 일관되게 중첩된 단항 또는 1항 함수를 생성합니다. 따라서 변경된 기능은 여전히 ​​첫 번째 기능과 상당 부분 유사합니다.
  • 부분 적용은 주관적인 인수 수의 기능을 생성합니다. 변경된 함수는 첫 번째 함수와 완전히 같지 않습니다. 첫 번째 함수와 비교할 때 더 적은 인수가 필요합니다.
  • Scala에서 Currying은 부분 응용 프로그램이 아니지만 부분 응용 프로그램을 활용하면 매우 잘 실행할 수 있습니다. 고정된 양의 매개변수를 사용하지 않는 경우 함수에 카레를 적용할 수 없습니다. 그렇지 않으면 성공적으로 작동하지 않습니다.

스칼라 프레임워크

다음은 Scala를 잘 이해하기 위해 확인할 수 있는 몇 가지 뛰어난 Scala 프레임워크입니다.

플레이 프레임워크

리프트 웹

볼러 프레임워크

지금은 말 그대로 현세대가 배우고 싶은 것을 배우고 추구할 수 있도록 모든 문이 열린 역사의 시간입니다. 다양한 기관, 멘토, 서비스 등이 학습을 가능하게 하고 학위 및 수료증의 형태로 검증을 제공합니다.

더욱이 이제는 침실에서 편안하게 할 수 있습니다. u pGrad 는 이 산업 부문의 최고 ​​기업으로서 교육 시스템을 한 번에 한 과정씩 혁신했습니다. MBA에서 법률, 보험, 데이터 과학에 이르기까지 upGrad는 현대 교육의 모든 족쇄를 깨고 교육 부문에 혁명의 물결을 불러일으켰습니다.

마무리

광범위한 과정을 확인하거나 우리가 하는 일을 이해하려면 언제든지 콜백을 요청 하거나 웹사이트 를 확인하십시오 .

빅 데이터 프로그램에 대해 더 알고 싶으시면 PG 디플로마 소프트웨어 개발 전문 빅 데이터 프로그램을 확인하세요. 이 프로그램은 실무 전문가를 위해 설계되었으며 7개 이상의 사례 연구 및 프로젝트를 제공하고 14개 프로그래밍 언어 및 도구, 실용적인 실습을 다룹니다. 워크샵, 400시간 이상의 엄격한 학습 및 최고의 기업과의 취업 지원.

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

미래의 기술 마스터 - 빅 데이터

IIT Bangalore의 빅 데이터 고급 인증 프로그램