2020.09.02

MS의 함수형 개발 언어 ‘F#’, 버전 5 기능 개발 완료

Paul Krill | InfoWorld
지난 8월 27일(현지 시각) 마이크로소프트가 F# 버전 5의 기능 개발 작업을 완료했다고 밝혔다. F#은 닷넷(.NET)과 호환되는 오픈소스 함수형 프로그래밍 언어다. 
 
ⓒGetty Images

최신 미리보기에서는 F# 개발자들이 가장 많이 요청했던 기능인 문자열 보간(string interpolation)이 추가됐다. 이는 C#과 자바스크립트의 문자열 보간과 상당히 유사하다. 개발자가 문자열 리터럴(string literals)에 이른바 ‘구멍{ }’을 작성할 수 있다는 뜻이다. 또한 F# 문자열 보간은 스프린트 함수와 유사한 타입화된(typed) 보간을 허용, 보간된 컨텍스트의 내부 표현식이 특정 타입을 따르도록 한다.  

마이크로소프트에 따르면 F# 버전 5는 닷넷 5 소프트웨어 개발 플랫폼과 함께 오는 11월 최종 안정화 버전(GA)이 공개될 예정이다. 최종 결함 검토만 남은 현재 릴리즈 캔디데이트(RC) 버전에서는 버그 수정 및 피드백 해결에 집중할 계획이라고 마이크로소프트는 덧붙였다. 

F# 버전 5는 닷넷 5 미리보기 SDK를 설치하거나 혹은 닷넷 및 주피터 노트북을 통해 액세스할 수 있다. F# 5의 다른 기능은 다음과 같다. 

• 사용 중인 기호를 확인하고 F# 소스에서 부르는 이름으로 만들어주는 nameof를 지원한다. 이 기능은 여러 상황에서 유용할 수 있는데, 이를테면 로깅 시에 소스 코드가 변경되더라도 로깅을 보호해준다. 

• 개방형 선언(Open type declarations)을 지원한다. 이는 F# 의미 체계에 따라 약간 다른 구문과 동작을 제외하고는 C# 정적 클래스와 유사하다. 개방형 선언을 사용하면 개발자는 모든 타입을 열어서 내부의 정적 콘텐츠를 노출할 수 있다. 또한 F#으로 정의된 공용체 및 레코드를 사용하여 해당 콘텐츠를 노출할 수도 있다. 특히, 공용체가 모듈에 정의돼 있고, 해당 케이스에 액세스하고 싶지만 전체 모듈을 열지 않으려는 경우 유용하다. 

• 개발자가 구성 요소의 표현력을 향상시킬 수 있는 연산 표현식(Computation expressions)이 애플리케이션 형식을 허용하도록 개선됐다. 

• 인터페이스가 개선됐다. 이제 인터페이스를 일반 인스턴스에서도 구현할 수 있다. ciokr@idg.co.kr
 



2020.09.02

MS의 함수형 개발 언어 ‘F#’, 버전 5 기능 개발 완료

Paul Krill | InfoWorld
지난 8월 27일(현지 시각) 마이크로소프트가 F# 버전 5의 기능 개발 작업을 완료했다고 밝혔다. F#은 닷넷(.NET)과 호환되는 오픈소스 함수형 프로그래밍 언어다. 
 
ⓒGetty Images

최신 미리보기에서는 F# 개발자들이 가장 많이 요청했던 기능인 문자열 보간(string interpolation)이 추가됐다. 이는 C#과 자바스크립트의 문자열 보간과 상당히 유사하다. 개발자가 문자열 리터럴(string literals)에 이른바 ‘구멍{ }’을 작성할 수 있다는 뜻이다. 또한 F# 문자열 보간은 스프린트 함수와 유사한 타입화된(typed) 보간을 허용, 보간된 컨텍스트의 내부 표현식이 특정 타입을 따르도록 한다.  

마이크로소프트에 따르면 F# 버전 5는 닷넷 5 소프트웨어 개발 플랫폼과 함께 오는 11월 최종 안정화 버전(GA)이 공개될 예정이다. 최종 결함 검토만 남은 현재 릴리즈 캔디데이트(RC) 버전에서는 버그 수정 및 피드백 해결에 집중할 계획이라고 마이크로소프트는 덧붙였다. 

F# 버전 5는 닷넷 5 미리보기 SDK를 설치하거나 혹은 닷넷 및 주피터 노트북을 통해 액세스할 수 있다. F# 5의 다른 기능은 다음과 같다. 

• 사용 중인 기호를 확인하고 F# 소스에서 부르는 이름으로 만들어주는 nameof를 지원한다. 이 기능은 여러 상황에서 유용할 수 있는데, 이를테면 로깅 시에 소스 코드가 변경되더라도 로깅을 보호해준다. 

• 개방형 선언(Open type declarations)을 지원한다. 이는 F# 의미 체계에 따라 약간 다른 구문과 동작을 제외하고는 C# 정적 클래스와 유사하다. 개방형 선언을 사용하면 개발자는 모든 타입을 열어서 내부의 정적 콘텐츠를 노출할 수 있다. 또한 F#으로 정의된 공용체 및 레코드를 사용하여 해당 콘텐츠를 노출할 수도 있다. 특히, 공용체가 모듈에 정의돼 있고, 해당 케이스에 액세스하고 싶지만 전체 모듈을 열지 않으려는 경우 유용하다. 

• 개발자가 구성 요소의 표현력을 향상시킬 수 있는 연산 표현식(Computation expressions)이 애플리케이션 형식을 허용하도록 개선됐다. 

• 인터페이스가 개선됐다. 이제 인터페이스를 일반 인스턴스에서도 구현할 수 있다. ciokr@idg.co.kr
 

X