我在Haskell中有这个代码:
import Control.Monad.Trans.State
simpleState = state (\x -> (x, x + 1))
runUntil :: (s -> Bool) -> State s a -> State s a
runUntil f s = do
s' <- get
-- Here I want to print value of s' to console
if f s'
then s >> runUntil f s
else s
main :: IO ()
main = do
let (x,s) = runState (runUntil (< 10) simpleState) 0
putStrLn $ "State = " ++ (show s) ++ …Run Code Online (Sandbox Code Playgroud) 我正在尝试解决有关字母表的haskell练习.给定一个新的字母顺序的单词列表,找到这个新的字母表.
例如,给定单词["ab","abd","abc","ba","bd","cc"],新的可能字母表是"abdc"或"adbc".
我开始计算所有可能的字母顺序
alfabet :: Eq a => [[a]] -> [[a]]
alfabet list = permutations $ nub $ concat $ list
Run Code Online (Sandbox Code Playgroud)
在此之后,我想我应该过滤掉那些错误的字母表,但我似乎无法传递足够的信息.我已经尝试使用内置filter函数,我尝试编写自己的排序函数,这样当我按新顺序对单词进行排序时,结果列表与输入列表相同,因此字母表是正确的.一切都无济于事.
我想我遇到的最大问题是我需要能够同时处理两个列表(单词和不同的字母表)并以不同的方式循环它们.
任何提示或帮助?谢谢
我写了一些java代码,当用户按下按钮时,将数据插入到SQL Server 2012的数据库中.当我运行代码时,我收到此错误:
com.microsoft.sqlserver.jdbc.SQLServerException:','附近的语法不正确.
它说这sqlstatement.executeUpdate();条线导致了错误.我知道这条线不是问题.问题是我的SQL查询,但我找不到我的查询是如何错误的.你能帮帮我吗?
这里的代码
count++;
for(int count = 0; count < table_1.getRowCount(); count++){
try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection dbconbt8 = DriverManager.getConnection("" +"jdbc:sqlserver://localhost;databaseName=Store;user=sa;password=XXXXXX");
String sqlQ = "INSERT INTO [dbo].[Transaction]([TransactionID],[ProductID]"+
",[TotalPrice]) VALUES ("+count+"','"+table_1.getValueAt(count, 0).toString()+"','"+sumprice+ "') ";
PreparedStatement sqlstatement = dbconbt8.prepareStatement(sqlQ);
sqlstatement.executeUpdate();
sqlstatement.close();
dbconbt8.close();
} catch (SQLException e1) {
e1.printStackTrace();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有经典 Sinatra(不是模块化 < Sinatra::Base)的旧项目。如何使它使用 Puma Web 服务器而不是 Thin?
我在互联网上找到的唯一使用 Puma 的例子是模块化 Sinatra。
参考:http : //www.sinatrarb.com/intro.html#Modular%20vs.%20Classic%20Style