함수 모듈 이해: Earl 언어에서의 함수 정의 및 실행 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- Earl 언어를 배우는 개발자, JavaScript/Python과 유사한 함수 정의 방식을 이해하고자 하는 프로그래머
- 중급 이상의 난이도 (문법 구조 및 스코프 관리 개념 필요)
핵심 요약
fungsi
모듈을 사용해fungsi namaFungsiku(parameter1, parameter2)
형식으로 함수를 정의하고sapa "Alex"
처럼 호출할 수 있음- 함수 실행 시
lokalLingkup
객체를 통해 지역 스코프를 생성하여 전역 변수와의 충돌 방지 console.error()
을 통해Kesalahan dalam fungsi
와Perintah 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: sebagai
및masukkan :l: sebagai
로 입력 받기
결론
fungsi
모듈은 Earl의 핵심 기능으로,lokalLingkup
을 통한 스코프 분리와 정확한 에러 메시지 지원이 특징fungsi hitungLuas
예제처럼 파라미터, 중첩 코드, 값 반환을 지원해 현대 언어와 유사한 유연성 제공const match = header.match(...)
정규식과localContext
객체 생성이 핵심 구현 방법