함수형 언어 C# 3.0

Posted 2007. 11. 22. 17:27
마이크로소프트 리서치(MS Research)의 Andrew Kennedy가 슬라이드 만들어 놓은 것을 보니 C# 3.0은 함수형 언어라고 주장하고 있군요. 헤스켈 같은 함수형 언어의 전유물이었던 퀵소트 예제의 C# 버전을 보여주고 있습니다.

사용자 삽입 이미지

아래 헤스켈 코드와 비교해도 손색이 없군요. 물론 타입을 조금 더 써줘야하긴 말입니다.

qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
  1. Favicon of https://deisys.tistory.com BlogIcon d-goon

    | 2007.11.22 22:58 신고 | PERMALINK | EDIT | REPLY |

    요즘들어 친구들이 C#에 대해 하는 말들이 꽤 많던데, "함수형 언어의 향기가 강하다"는 평이 대세입니다. 전 전혀 C#을 모르지만 한번 공부해볼까? 라는 생각이 들더군요. ... 저 예만 봐선 좀 덜 우아(?)하지만 그럴싸해 보이네요. 우왕~

  2. Favicon of https://skyul.tistory.com BlogIcon 서광열 lambda

    | 2007.12.03 03:47 신고 | PERMALINK | EDIT |

    옛날에는 조금만 관심 있으면 쉽게 새로운 언어도 배우고는 했었는데, 요즘은 당장 쓸 언어가 아닌 실용 언어를 학술적인(?)인 의미도 없이 배우려는 엄두가 잘 안 나네요. 헐헐.

  3. dynaxis

    | 2007.11.22 23:35 | PERMALINK | EDIT | REPLY |

    원래 C#은 Java에서 실용적으로 아쉬운 부분을 보완하면서 C++쪽 기능 중 언어 설계자가 아쉬워하던 기능을 조금씩 끌어들여 만든 언어에 가깝습니다. 그래서 처음 시작이 함수 언어적인 특성이 많았다고 보기는 어렵고 1.0 넘어가면서부터 그런 특성이 자꾸 더 들어가는 것 같습니다.

  4. Favicon of https://skyul.tistory.com BlogIcon 서광열 lambda

    | 2007.12.03 03:43 신고 | PERMALINK | EDIT |

    네. 저도 3.0을 보면서 의아하게 생각했습니다. C# 초기 버전은 분명히 자바의 문제점을 실용적으로 보완한 정도로 생각했었거든요.

    메쏘드 이름이 같은 두 인터페이스를 다른 메서드로 구현할 수 있다던지 하는 부분처럼 자바에서 놓친 디테일이 돋보이는 부분들이 있었는데.

    3.0으로 가면서 원래 철학과 다르게 조금 오버한다는 느낌이 다소 받았습니다. 발전은 계속해야 되는데 1.0에서 했던 것과는 다소 기본적인 철학이 바뀐 느낌이랄까요.

  5. Favicon of http://wafe.kr/ BlogIcon wafe

    | 2007.11.23 00:46 | PERMALINK | EDIT | REPLY |

    눈에 잘 들어오지 않는 코드네요. 익숙하지 않은 문법이라서 그럴까요?

    학부때 SICP책이나 nML과 함께 사투한 시간이 지금와서 생각해보니 재미있는 시간이었다는 생각이 들어서인지 MS에서 만들고 있다는 F# 이라는 함수형 언어도 기대하고 있습니다만, C#에다가 갖다 붙이는 이유는 뭘지 참 궁금하네요.

  6. Favicon of https://skyul.tistory.com BlogIcon 서광열 lambda

    | 2007.12.03 03:45 신고 | PERMALINK | EDIT |

    눈에 조금 더 잘 들어오려면 타입 추론을 훨씬 더 강화해야 하지 않을까 생각해 봅니다. C 계열의 C, C++, C#, Java 등은 기본적으로 문법(syntax)이 verbose한 편인데 타입도 잔뜩 써줘야 하면 코드 읽기가 쉽지가 않다고 생각하거든요.

Write your message and submit
« PREV : 1 : ··· : 69 : 70 : 71 : 72 : 73 : 74 : 75 : 76 : 77 : ··· : 244 : NEXT »