AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

함수 모듈 이해: Earl 언어에서의 함수 정의 및 실행 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • Earl 언어를 배우는 개발자, JavaScript/Python과 유사한 함수 정의 방식을 이해하고자 하는 프로그래머
  • 중급 이상의 난이도 (문법 구조 및 스코프 관리 개념 필요)

핵심 요약

  • fungsi 모듈을 사용해 fungsi namaFungsiku(parameter1, parameter2) 형식으로 함수를 정의하고 sapa "Alex"처럼 호출할 수 있음
  • 함수 실행 시 lokalLingkup 객체를 통해 지역 스코프를 생성하여 전역 변수와의 충돌 방지
  • console.error()을 통해 Kesalahan dalam fungsiPerintah tidak dikenali 등의 정확한 에러 메시지 출력

섹션별 세부 요약

1. 함수 정의 및 호출 구조

  • fungsi dengan(nama)와 같이 이름과 파라미터를 지정해 함수 정의
  • sapa "Alex"처럼 호출 시 nama 파라미터에 "Alex" 값이 할당
  • 예시: tampilkan "Halo, " nama로 문자열 출력

2. 헤더 파싱 및 스코프 관리

  • ^([a-zA-Z_][a-zA-Z0-9_])\(([^)])\)$ 정규식으로 함수 이름과 파라미터 검증
  • params.forEach()를 통해 lokalLingkup[param] = args[index] ?? null로 파라미터 매핑
  • 지역 스코프(lokalLingkup) 생성으로 전역 변수와의 분리

3. 실행 컨텍스트 및 에러 처리

  • localContext 객체를 생성해 함수 내 index, lines, lingkup 등을 관리
  • console.error(Kesalahan dalam fungsi '${namaFungsi}':, err.message)로 에러 메시지 출력
  • Perintah '${cmd}' tidak dikenali dalam fungsi 메시지로 미지원 명령어 알림

4. 함수 예제: `hitungLuas`

  • fungsi hitung(panjang, lebar)로 정의 후 panjang * lebar 계산
  • tampilkan "Luas adalah: " :hasil:로 결과 출력
  • masukkan :p: sebagaimasukkan :l: sebagai로 입력 받기

결론

  • fungsi 모듈은 Earl의 핵심 기능으로, lokalLingkup을 통한 스코프 분리정확한 에러 메시지 지원이 특징
  • fungsi hitungLuas 예제처럼 파라미터, 중첩 코드, 값 반환을 지원해 현대 언어와 유사한 유연성 제공
  • const match = header.match(...) 정규식과 localContext 객체 생성이 핵심 구현 방법