전체 글 725

80컬럼 컨솔에 19단표 출력하기 예제 for Io

다음 소스 코드는 80컬럼 컨솔에 19단표 출력하기 예제 (2) for Groovy 에 올려진 Groovy 소스 코드를 Io 소스 코드로 고친 것이다. C, C++, Java, Groovy 언어에서는 블럭을 둘러싸는 기호로 중괄호 열기 기호"{"와 중괄호 닫기 기호"}" 를 많이 사용하였지만, Io 언어에서는 반복구문, 제어구문까지 모두 메소드(함수)이므로, 함수의 괄호 열기 기호 "("와 괄호 닫기 기호")"를 많이 사용한다는 것을 잊지 말아야 한다. Groovy 언어에서 변수 처음 사용 시에 def varName = value 처럼 def 예약어를 사용하듯이 Io에서는 varName := value 처럼 (등호 "=" 대신) := 를 사용한다. 일단 변수가 생성되고 나면 나중에는 그 변수가 아무 타입..

프로그래밍/Io 2008.04.07

(최대공약수 구하기) while ... 반복문 예제 for Io

아래의 소스 코드는 Groovy 용으로 작성돠었던 소스파일 testWhile.groovy를 Io용으로 고친 것이다. * 소스에 한글이 포함된 경우 반드시 UTF-8 인코딩으로 저장해야 한다. 그렇지 않으면 에러기 난다. * (Ubuntu에서는 OS 자체에서 UTF-8 인코딩을 기본으로 하고 있으므로, 한글 처리에 아무 문제가 없을 것이다.) 소스 파일명: testWhile.io # Filename: testWhile.io # # Purpose: Example using the while loop syntax # while .... # # Execute: io testWhile.io -200 300 // 사용법 표시 printUsage := method ( "Using: groovy testWhile.gr..

프로그래밍/Io 2008.04.06

구구단 출력 예제 for Io

Io 언어의 메서드 정의 구문 양식은 methodName := method(varNames, ............ ) 이다. Io 언어의 for 반복문 양식은 for (iterator, from, to, ............ ) 이다. 리스트에 대해서는 foreach 반복문 a := list(1, 2, 3, 4, 5, 6, 7, 8, 9) a foreach (iterator, ............ ) 도 있다. 소스 파일명: forTest.io ------------------------------[소스 시작] printDan := method(dan, for (i, 1, 9, "#{dan} x #{i} = #{dan*i}" interpolate println ) ) printDan(2) -----..

프로그래밍/Io 2008.04.06

Hello 예제 for Io

컨솔에 문자 출력하는 Io 구문은 "문자열(스트링)" println "문자열(스트링)\n" print 또는 writeln("문자열(스트링)") write("문자열(스트링)\n") 이다. 즉, println과 print는 출력될 스트링의 후위에 적어야 하고, writleln과 writle는 출력될 스트링의 전위에 적어야 한다. 소스 파일명: hello.io ------------------------------[소스 시작] "Hello, world!" println ------------------------------[소스 끝] 실행> io hello.io Hello, world! 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

프로그래밍/Io 2008.04.06

클래스 상속(subclassing) 예제 with C++

C++ 소스는 한 개의 파일에 여러 개의 클래스가 존재해도 된다. 다음은 두 개의 클래스로 구성되어 있다. Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다. // Filename: testSubclassing.cpp #include using namespace std; class Parent { private: char name[21]; public: Parent(const char *); // 생성자 ~Parent() { } // 소멸자 void sayName(); }; class Child : public Parent { private: char name[21]; public: Child(const char *); // 생성자 ~Child() { } // 소멸자 ..

프로그래밍/C++ 2008.04.05

클래스 상속(subclassing) 예제 with Lua

Lua도 클래스 기반 객체지향 언어가 아니라 Self, Io, ECMAScript 언어들 처럼 프로토타입 기반 객체 지향 언어이다. Lua 언어에서 클래스 상속을 구현하기 위해서는 테이블과 함수가 필요하다. 아래의 소스 코드에서 inheritsFrom() 함수가 클래스 상속을 위해 구현돤 함수이다. Lua 언어도 Java 언어 처럼 대소문자 구별을 엄격히 하므로 클래스를 선언하고 그 클래스로 객체 생성할 때 대소문자 구별을 꼭 지켜야 한다. 다음은 두 개의 클래스로 구성되어 있다. Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다. -- Filename: testSubclassing.lua -- -- A new inheritsFrom() function -- funct..

프로그래밍/Lua 2008.04.05

클래스 상속(subclassing) 예제 with Ruby

Ruby도 한 개의 소스 파일에 여러 개의 클래스가 존재해도 된다. 또 클래스명과 다른 파일명으로 저장해도 된다. Ruby 언어도 Java 언어 처럼 대소문자 구별을 엄격히 하므로 클래스를 선언하고 그 클래스로 객체 생성할 때 대소문자 구별을 꼭 지켜야 한다. 다음은 두 개의 클래스로 구성되어 있다. Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다. # Filename: testSubclassing.rb class Parent @name def initialize(name) @name = name end def sayName() print("I am Parent, " + @name + "\n") end end class Child < Parent @name def i..

클래스 상속(subclassing) 예제 with Python (or Jython or IronPython)

Python 언어에서도 한 개의 소스 파일에 여러 개의 클래스가 존재해도 된다. 또 클래스명과 다른 파일명으로 저장해도 된다. Python 언어도 Java 언어 처럼 대소문자 구별을 엄격히 하므로 클래스를 선언하고 그 클래스로 객체 생성할 때 대소문자 구별을 꼭 지켜야 한다. 다음은 두 개의 클래스로 구성되어 있다. Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다. # Filename: testSubclassing.py class Parent: def __init__(self, name): # 클래스 생성자 self.name = name def sayName(self): print("I am Parent, " + self.name) class Child(Parent)..

클래스 상속(subclassing) 예제 with Groovy

Groovy 언어는 Java 언어와 달리 한 개의 소스 파일 내에 public 이든 아니든 여러 개의 클래스가 존재해도 된다. 또 클래스명과 다른 파일명으로 저장해도 된다. Groovy 언어도 Java, C 언어 처럼 대소문자 구별을 엄격히 하지만 public 클래스와 대소문자만 듵린 파일명으로 저장해도 아무 상관 없다. 다음은 두 개의 클래스로 구성되어 있다. Parent는 부모 클래스이고 Child는 Parent에서 상속 받은 자식 클래스이다. // Filename: testSubclassing.groovy public class Parent { private String name public Parent(String name) { // 생성자 this.name = name } public void ..