小编Jua*_*ira的帖子

在Haskell上实现回溯

我在Haskell上制作Backtracking时遇到问题,我知道如何进行递归函数,但是当我尝试获得多个解决方案或最好的解决方案(回溯)时,我会遇到麻烦.

有一个包含一些字符串的列表,然后我需要获得从字符串到另一个字符串的解决方案,从字符串中更改一个字母,我将获得列表,第一个字符串和最后一个字符串.如果有解决方案返回它所执行的步骤计数,如果没有解决方案则返回-1.这是一个例子:

wordF ["spice","stick","smice","stock","slice","slick","stock"] "spice" "stock"
Run Code Online (Sandbox Code Playgroud)

然后我有我的清单,我需要从头开始,"spice"并且"stock" 最好的解决方案是["spice","slice","slick","stick","stock"]通过四个步骤来"spice"实现"stock".然后它回来了4.

另一种解决方案是["spice","smice","slice","slick","stick","stock"]通过五个步骤来达到"stock"它然后返回`5.但这是一个错误的解决方案,因为还有一个更好的步骤,而不是这个步骤.

我有麻烦做回溯以获得最佳解决方案,因为我不知道如何使我的代码搜索另一个解决方案,而不是一个...

这是我试图制作的代码,但我得到了一些错误,顺便说一句,我不知道我的"制作"回溯方式是否良好,或者是否有一些错误,我没有看到..

  wordF :: [String] -> String -> String -> (String, String, Int)
  wordF [] a b = (a, b, -1)
  wordF list a b | (notElem a list || notElem b list) = (a, b, -1)
           | otherwise = (a, b, (wordF2 list a b [a] 0 (length list)))
  wordF2 :: [String] -> …
Run Code Online (Sandbox Code Playgroud)

haskell backtracking

5
推荐指数
1
解决办法
1398
查看次数

错误:意外值'AngularFireAuth'.由'AppModule'模块导入

我在ionic3应用程序上遇到以下错误

未捕获错误:模块"AppModule"导入的意外值"AngularFireAuth".请添加@NgModule注释.

这是我的app.module.ts:

  import { BrowserModule } from '@angular/platform-browser';
    import { ErrorHandler, NgModule } from '@angular/core';
    import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';

    import { MyApp } from './app.component';
    import { HomePage } from '../pages/home/home';
    import { ListPage } from '../pages/list/list';
    import { LoginPage } from '../pages/login/login';

    import { StatusBar } from '@ionic-native/status-bar';
    import { SplashScreen } from '@ionic-native/splash-screen';

    import { HttpModule } from '@angular/http';
    import { Geolocation } from '@ionic-native/geolocation';
    import { AngularFireDatabaseModule, AngularFireDatabase } from 
    'angularfire2/database';
    import …
Run Code Online (Sandbox Code Playgroud)

firebase angularfire ionic3 angular

1
推荐指数
1
解决办法
3409
查看次数

Haskell错误,预期类型

我在这段代码上得到了这个错误!

esImpar :: Integer -> Bool
esImpar a = if (a mod 2) /= 0 then True
        else False
Run Code Online (Sandbox Code Playgroud)

错误: 无法匹配预期类型(整数 - >整数 - >整数) - >(整数 - >整数) - >整数 - >整数'与实际类型整数

函数"a"应用于三个参数,

但它的类型Integer'没有

在(/ =)的第一个参数中,即(来自整数2的mod)

在表达式中:(a mod 2)/ = 0

haskell

0
推荐指数
1
解决办法
115
查看次数

不匹配类型

我有这个代码的问题:

 rango2 :: Int -> [Int] -> [[Int]] -> [Int]
 rango2 a b list = if (verif (map(+list!!a!!2)(list!!a)) (map(-list!!a!!2)(list!!a)) (b)) then [1]
              else [0]

 verif :: [Int] -> [Int] -> [Int] -> Bool
 verif a b c = if ((c!!0 < ((a!!0)+1)) && (((c!!0)+1) > b!!0) && (c!!1 < ((a!!1)+1)) && (((c!!1)+1) > b!!1)) then True
          else False
Run Code Online (Sandbox Code Playgroud)

运行时,会产生以下错误:

Couldn't match type `Int' with `Int -> Int'
Expected type: [[Int -> Int]]
  Actual type: [[Int]]
In the first argument of …
Run Code Online (Sandbox Code Playgroud)

haskell

0
推荐指数
1
解决办法
62
查看次数

标签 统计

haskell ×3

angular ×1

angularfire ×1

backtracking ×1

firebase ×1

ionic3 ×1