문제

이미 LISP에 익숙 할 때 F#를 학습하는 데 부가 가치는 무엇입니까?

도움이 되었습니까?

해결책

이들 중 다수는 프로그래밍 언어 세계에서 비교적 최근의 발전입니다. F# 표준이 여전히 개발 중이기 때문에 LISP, 특히 일반적인 LISP에서는 F#에서 볼 수있는 것입니다. 결과적으로 배울 수있는 약간의 것이 있다는 것을 알게 될 것입니다. 물론 ADT, 패턴 매칭, 모나드 및 카레 링과 같은 것들은 LISP의 라이브러리로 구축 할 수 있지만 편리하게 내장 된 언어로 사용하는 방법을 배우는 것이 좋습니다.

실제 사용을위한 F#를 학습하는 가장 큰 장점은 .NET와의 통합입니다.

다른 팁

LISP를 F#과 직접 비교하는 것은 실제로 공정하지 않습니다. 하루가 끝나면 충분한 시간이 지남에 따라 어느 언어로든 동일한 앱을 쓸 수 있기 때문입니다.

하지만, C# 또는 Java 개발자가이를 배워야하는 것과 같은 이유로 F#을 배워야합니다. .NET 플랫폼에서 기능적 프로그래밍을 허용하기 때문입니다.. LISP에 100% 익숙하지는 않지만 별도의 라이브러리 지원이 없다는 점에서 OCAML과 동일한 문제가 있다고 가정합니다. LISP에서 데이터베이스 액세스를 어떻게 수행합니까? 고성능 그래픽은 어떻습니까?

'왜 .NET'에 대해 더 배우고 싶다면, 이것을 확인하십시오. 그래서 질문.

당신이 f#과 lisp를 알고 있다면, 당신은 이것이 다소 이상한 질문을 할 것입니다.

다른 사람들이 지적했듯이 LISP는입니다 동적으로 입력했습니다. 더 중요한 것은 LISP의 독특한 특징은 Homoiconic이라는 것입니다. LISP 코드는 기본 LISP 데이터 유형입니다 (목록). 매크로 시스템은 당신이 쓸 수있게함으로써 그것을 활용합니다. 컴파일 타임에서 실행하고 다른 코드를 수정하는 코드.

F#는 이와 같은 것이 없습니다. ML과 Haskell에서 많은 아이디어를 빌려 .net에서 실행하는 정적으로 입력 한 언어입니다.

당신이 묻는 것은 "포크를 사용하는 방법을 알고 있다면 왜 숟가락을 사용하는 법을 배워야합니까?"와 비슷합니다.

LISP가 동적으로 입력되고 F#이 정적으로 입력되었다는 점을 감안할 때, 그러한 비교는 이상하다고 생각합니다.

LISP에서 F#로 전환하는 경우, 일부 .NET 전용 라이브러리에서 큰 혜택을받는 작업이 있었기 때문입니다.

하지만 나는 그렇지 않아서 그렇지 않습니다.

돈. F# 코드는 이미 LISP 코드보다 더 가치가 있으며 F#가 광범위한 채택을 볼 수 있듯이이 격차는 매우 빠르게 넓어 질 것입니다.

다시 말해, LISP를 사용하는 것보다 F#을 사용하여 안정적인 수입을 얻을 가능성이 훨씬 높습니다.

건배, Jon Harrop.

F#은 대부분의 LISP 방언에 비해 매우 다른 언어입니다. 따라서 F#은 매우 다른 프로그래밍 각도를 제공합니다. LISP에서 배우지 못하는 각도입니다. 대부분의 LISP 방언은 상징적 소프트웨어의 증분, 대화식 개발에 가장 적합합니다. 동시에 대부분의 LISP 방언은 기능적 프로그래밍 언어가 아니라 다중 파라디그 언어와 유사합니다. FPL 기능 (부작용, 불변 데이터 구조, 대수 데이터 유형)에 따라 다른 방언이 다른 방언이 있습니다. 따라서 대부분의 LISP 방언에는 정적 타이핑이 부족하거나 그에 크게 강조하지 않습니다.

따라서 LISP 방언을 알고 있다면 F#을 배우는 것은 많은 의미가 있습니다. F#이 매우 다른 언어이기 때문에 LISP 지식의 대부분이 F#에 적용된다고 생각하지 마십시오. C 또는 Java에 사용되는 명령적인 프로그래밍은 LISP를 학습 할 때 아이디어를 꺼내야합니다. F#을 사용할 때 LISP 습관 (유형, 부작용, 매크로 등)을 꺼내야합니다. F#은 또한 Microsoft에 의해 주도되며 .NET 프레임 워크를 활용합니다.

F#은 .NET 개발 (일반적으로)이 매우 널리 채택되고, 쉽게 이용 가능하며, 대량 시장이라는 이점이 있습니다.

F#을 코딩하려면 LISP 환경을 높이고 실행하는 것과는 달리 많은 개발자가 이미 가지고있는 Visual Studio를 얻을 수 있습니다.

또한 기존 .NET 개발자는 LISP보다 F#을 볼 가능성이 훨씬 높습니다.

(이것은 대학에있는 동안 LISP를 코딩하고 사랑하는 .NET 개발자에게서 나옵니다).

당신이 할 것인지 잘 모르겠습니다. 당신이 f# 흥미로운 것을 발견하면 그 이유가 될 것입니다. 당신이 일을 요구한다면, 그것은 이유가 될 것입니다. 그것이 당신을보다 생산적으로 만들거나 현재 지식보다 부가 가치를 가져다 줄 것이라고 생각한다면, 그것이 이유 일 것입니다.

그러나 F# 흥미로운 것을 찾지 못하면 작업이 필요하지 않으며 그것이 당신을 더 생산적으로 만들거나 부가가치를 부가 할 것이라고 생각하지 않으면 왜 그렇게 될까요?

반면에 F#이 LISP가하지 않는 질문이라면, 유추, 패턴 일치 및 나머지 .NET 프레임 워크와의 통합을 고려해야합니다.

나는이 스레드가 늙었다는 것을 알고 있지만이 실을 우연히 발견했기 때문에 내 이유에 대해 언급하고 싶었습니다. .NET은 내 분야를 지배하는 회사 범주에서 많은 가중치를 부여하기 때문에 전문적인 기회를 위해 F#을 배우고 있습니다. 기능적 패러다임은보다 정량적이고 데이터 지향적 회사들 사이에서 사용되고 있으며이 추세의 초기이자 중 하나가되고 싶습니다. 현재 .NET 라이브러리와 완전히 안전하게 통합하는 강력한 기능 언어가 없습니다. 나는 실제로 LISP 코드에서 일부 .NET를 포트하려고 시도했고 실제로는 고통 B/C입니다. 통증. LISP가 다음 표준에서 여분의 마일을 사용하고 C ++ 클래스 (VTABLE와 가상 함수 포함)와 FFI의 C# 스타일 인터페이스 유형이 필요하다면 정말 좋을 것입니다. 어쩌면 Java 인터페이스 스타일 유형을 던질 수도 있습니다. 이를 통해 .NET 라이브러리와의 완전한 상호 운용성을 허용하고 LISP를 대규모 언어로 강력한 경쟁자로 만듭니다. 그러나 그 말로 LISP 배경에서 나오는 것은 학습을 쉽게 만들었습니다. 그리고 나는 F#이 일반적으로 정량적 유형 작업을 볼 수있는 유형을 제공하기 위해 여분의 마일을 겪은 방법을 좋아합니다. 나는 F#이 수학적 작업을 염두에두고 만들어졌으며 그 자체로는 LISP보다 가치가 있다고 생각합니다.

이것 (원래 질문)을 보는 한 가지 방법은 언어 (및 관련 도구 및 플랫폼)를 즉각적인 작업과 일치시키는 것입니다. 작업에 압도적 인 비율의 .NET 코드가 필요하고 작업을 정면으로 충족시키기 위해 한 언어보다 한 언어로 신발 호흡이 적은 경우 저항이 가장 적은 경로를 취하십시오 (F#). .NET 기능이 필요하지 않고 LISP로 작업이 편한 경우 팔 굽힘이 없으면 계속 사용하십시오.

망치를 렌치와 비교하는 것과 크게 다르지 않습니다. 작업에 가장 효과적으로 맞는 도구를 선택하십시오. 객관적으로 "최고의"도구를 선택하는 것은 말도 안됩니다. 어쨌든 20 년 안에 현재 "핫"언어는 어쨌든 구식이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top