Scheme: 시작하기

준비

이 글에서는 스킴의 기본적인 개념과 문법을 알아보겠다. 시작하기에 앞서 먼저 PLT Scheme을 설치하자. DrScheme을 실행하고 메뉴에서 Language -> Choose Language -> Standard(R5RS) 순으로 선택한 후 Run 버튼을 누르면 준비가 끝난다.

안녕, 세상아

PLT Scheme

소개


PLT Scheme은 널리 쓰이는 Scheme 환경으로 편리한 통합개발환경과 풍부한 라이브러리를 제공한다.

설치

  1. 여기에 접속
  2. 자신의 운영체제를 선택하고 "Download" 버튼 클릭
  3. 다운로드 받을 사이트 선택
  4. 실행

DrScheme


PLT Scheme을 설치하면 여러 가지 Scheme 환경이 설치된다. 하지만 실제로 사용하는 것은 통합개발환경인 DrScheme 뿐이다.

DrScheme에는 두 개의 편집창이 있는 데 위쪽을 정의창(definition window), 아래쪽은 실행창(interaction window)이다. 정의창에 코드를 작성한다음 Run 버튼을 누르면 실행창에서 사용할 수 있다.

프로그래밍을 시작하는 초보입니다만,

파스칼의 삼각형을 좀 구해보려고 코드를 짰었는데, 같은 코드인거 같은데, 하나는 에러가 나고 하나는 안나네요.

손으로 식을 다 풀어보아도 풀리는 것 같은데, 이유를 잘 모르겠습니다.
(파스칼 철자가 pascal인것은 압니다만..)

가장 처음 혼자 있는 1을 좌표 0,0으로 하고서 풀었습니다.

module Test1 where

paskal 0 0 = 1
paskal y x
	| x == -1 = 0
	| y == -1 = 0
	| x > y = 0
	| otherwise = paskal (y-1) (x-1) + paskal (y-1) x

하고
[code]module Error where
paskal 0 0 = 1

(번역물) OCaml Basic.

주석

Ocaml의 주석은 (* 와 *) 로 표현합니다. 아래는 예제 입니다:

(* 한줄짜리 주석입니다. *)

 
(* 이 주석은
 * 여러줄에 
 * 걸쳐 있습니다.
 *)

주석의 표현은 C 언어의 표현법과 매우 유사합니다.

(/* ... */).

Ocaml에는 한줄의 주석에 대한 다른 주석문이 없습니다. (예를들어 .# ... Perl 처럼 이거나 // ... C /C++/Java 같은).

OCaml 은 중첩 주석을 허용합니다. (* ... *) 구조는 아래처럼 코드 구역을 표현하기 때문에 가독성이 좋습니다:

Wow! I am Not Alone....

이렇게 많은 분들이 함수형언어에 관심이 있는줄 몰랐습니다.
이런 커뮤니티 너무 좋아요~^^;

저도 이곳저곳 글을 많이 썼는데 다들 호응이 별로 않좋아서,
요즘은 뜸해요`^^;

이제 곧 f#도 붙고, 해볼일이 많아 졌군요~^^;

12월 함수형 프로그래밍 세미나

지난 달에 함수형 프로그래밍 세미나를 매달 열겠다고 얘기했는 데 다른 일이 많아 어물어물 하다보니 어느 새 11월이 다 끝나갑니다. 12월 초가 지나야 지금 하고 있는 일들이 마무리되기 때문에 당장은 어렵지만 12월 중으로 한 번 세미나를 개최하려고 합니다.

지난 번 세미나에서 많은 분들의 의견이 대안언어축제와 비슷한 방식의 운영을 원하셨던 것 같습니다. 그러려면 적당한 장소가 있어야 하는 데 마땅치가 않군요. 일단 공간도 상당히 널직해야할 것이고 무선랜이라든지 전원 문제도 해결되야 합니다. 대학 강의실로는 어렵고 전산실을 빌려볼까 했는 데 그것도 비용이 만만치 않더군요.

안녕하세요^^/

오랬동안 관심이 있어 왔던 분야에 이런 사이트가 생겨 새로 가입했습니다.
실제로 등록한지는 꽤 됐지만 제대한지가 얼마 안되서-_-;;; 쿨럭쿨럭;;;

어쨌든 잘 부탁드리고 좋은 정보를 많이 교환했으면 합니다. ^^/

^^/ 질문~~~

아래 김충환이라는 이름이 부담(?)스러워 아이디 새로 만들었네요..
이 아이디로 사용하게 될테니.. 저아래 제이름으로된 계정은 지워 주셔도 무방 ㅋㅋ ^^;;

회사일이 바빠 그동안 쳐다 보지 못했던 haskell을 이제야 꺼내보았슴다...
이제 겨우 튜토리얼의 예제를 작성해보고 있는 수준이지만,
Ocaml을 조금 쳐다본 경험이 있어서 그리 어렵게만 느껴지지 않는군요..
그래도 아직 감이 없는지라 ㅡㅡㅋ

궁금한건 인터프릿에 대한 사용법이 좀 궁금해서 ^^;

module Test where 다음에 들여쓰기

module Test where 다음에 들여쓰기를 안 하는데 단순하게 생각하면 where 다음에 들여쓰기를 하는게 일관성이 있어보이는데 module을 정의할 때만 예외로 한 건가요? 아니면 제가 들여쓰기에 대해서 잘못 생각한 건가요?

module Test where

import ...

이처럼 쓰기도 하더라고요.

comp.lang.haskell 그룹이 생겼습니다.

얼마 전에 RFD가 올라왔었는데 드디어 승인됐습니다. 뉴스그룹 클라이언트나 구글 그룹 서비스를 통해 보실 수 있습니다.

내용묶음