伊德里斯的常数

时间:2017-05-21 05:18:32

标签: idris

在伊德里斯定义我们称之为其他语言常量的惯用方法是什么?是这个吗?

<%@ page import="java.sql.*" %>
<%  
    try {  
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con=null;  
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb","root","");
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("select idi from idmaker;");
        String id1="";
        while(rs.next()) {
            id1=rs.getString(1);
        }

        long id2=0;
        id2 = Integer.parseInt(id1);            
        id2=id2+1;          
        Long longInstance = new Long(id2);      
        String numberAsString = longInstance.toString();
        out.write("<br>"+numberAsString);
        String query = "TRUNCATE idmaker";
        stmt.executeUpdate(query);
        stmt.executeUpdate("insert into idmaker values('"+numberAsString+"');");

        con.close();  
    } catch(Exception e) { }
%>

如果是这样,在REPL中我在声明后得到一个例外:

myConstant : String
myConstant = "some_constant1"


myConstant2 : Int
myConstant2 = 123

2 个答案:

答案 0 :(得分:6)

是的,这是在Idris中定义常量的惯用方法(在源文件中)。

但是,在REPL中绑定名称时,需要使用带有显式类型注释的:let指令,如下所示:

Idris> :let myConstant : String; myConstant = "some_constant1"

或有时Idris能够推断出类型:

Idris> :let myConstant = "some_constant1"

描述here

答案 1 :(得分:1)

声明全局常量没什么特别之处。你这样做的方法是好的。

  

如果是这样,在REPL中我在声明后得到一个例外:

您使用的是哪种版本的Idris?在1.0上,一切正常。 你如何声明变量?在文件中,而不是在REPL中加载文件?