[[/*inline_define*/ import java.util.*; import java.io.*; class IO { public static Map handles = new HashMap(); } ]], io:{ io.print(String) :- unary(String)|[[/*inline*/ System.out.println(me.nth(0)); ]](String). io.input(Message) :- [[/*inline*/ String s = javax.swing.JOptionPane.showInputDialog(null, me.nth(0)); me.changeName(s); me.nthAtom(0).changeName("done"); ]](Message). io.input(Message, X) :- [[/*inline*/ String s = javax.swing.JOptionPane.showInputDialog(null, me.nth(0)); me.changeName("done"); me.nthAtom(0).changeName(s); ]](Message, X). io.input :- [[/*inline*/ String s = javax.swing.JOptionPane.showInputDialog(null, "Input text."); me.changeName(s); ]]. io.popup(String) :- unary(String)|[[/*inline*/ javax.swing.JOptionPane.showMessageDialog(null, me.nth(0)); ]](String). io.fopen(Handle, String) :- unary(Handle), unary(String)|[[/*inline*/ try { PrintWriter pw = new PrintWriter(new FileOutputStream(me.nth(1))); IO.handles.put(me.nth(0), pw); } catch(Exception e) {} ]](Handle, String). io.fprint(Handle, String) :- unary(Handle), unary(String)|[[/*inline*/ ((PrintWriter)IO.handles.get(me.nth(0))).println(me.nth(1)); ]](Handle, String). io.fclose(Handle) :- unary(Handle)|[[/*inline*/ ((PrintWriter)IO.handles.get(me.nth(0))).close(); ]](Handle). } // inputString("How much?", Answer).