小编Sim*_*mon的帖子

如何在Haskell中解析IO String?

我遇到了Haskell的问题.我的文本文件看起来像这样:

5.
7. 
[(1,2,3),(4,5,6),(7,8,9),(10,11,12)].
Run Code Online (Sandbox Code Playgroud)

我不知道如何获得前两个数字(上面的2和7)和最后一行的列表.每行末尾有点.

我试图构建一个解析器,但是名为'readFile'的函数返回Monad,称为IO String.我不知道如何从这种类型的字符串中获取信息.

我更喜欢在一系列字符上工作.也许有一个函数可以从'IO String'转换为[Char]?

string io monads parsing haskell

28
推荐指数
4
解决办法
2万
查看次数

在Go lang服务器中流式传输视频

我写了这个简单的http服务器来提供视频文件:

package main

import (
    "net/http"
    "os"
    "bytes"
    "io"
    "fmt"
)

func handler(w http.ResponseWriter, r *http.Request) {

rangeValue := r.Header.Get("range")
fmt.Println("Range:")
fmt.Println(rangeValue)

buf := bytes.NewBuffer(nil)
f, _ := os.Open("oceans_1.webm")
io.Copy(buf, f)           // Error handling elided for brevity.
f.Close()

w.Header().Set("Accept-Ranges","bytes")
w.Header().Set("Content-Type", "video/webm")
w.Header().Set("Content-Length","22074728")
w.Header().Set("Last-Modified", "Wed, 29 Nov 2017 17:10:44 GMT")

w.WriteHeader(206)
w.Write(buf.Bytes())
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

该视频服务完美,但我无法更改视频的时间.当我点击时间轴视频光标时,它不会改变位置,视频也不会跳转到特定时间.

当我使用http.ServeFile(w, r, "oceans_1.webm")一切完美的服务视频时,我可以改变视频时间.

go video-streaming html5-video

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

Solr和postgresql集成

我想将搜索引擎Solr添加到我的Java应用程序中.我想索引Solr中的一些信息,但不是所有内容,因为我的数据库非常具体.

我不想解释所有内容,因为它很复杂,所以我将使用一个简单的例子.

假设我有一个名为T的表,有两列col1col2:

 col1             | col2
------------------|----------
 some text...     |  123
 another text...  |  41
 bla bla...       |  124
Run Code Online (Sandbox Code Playgroud)

我想仅索引Solr引擎中的col1列.我不想索引Solr中的col2列 - 我知道这是可能的,但我不想这样做.

在搜索我的应用程序时,我想要从两列中过滤信息.例如,我需要获得带有"Lorem ipsum dolorem"的行 col1中,并且在col2中使用范围[ ]中的值.

我怎样才能做到这一点?

我使用PostgreSQL和Hibernate,但也许我会将它改为MongoDB.

java postgresql solr hibernate

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

如何检查 DOM 元素是否在范围内

如何检查 DOM 树中的节点是否在特定范围内(https://developer.mozilla.org/en-US/docs/Web/API/Range)?当然,节点可以完全在范围内,也可以部分在范围内。

javascript dom range

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

订购以点分隔的数字序列(例如,版本号)

在我的数据库中,我列填充了这些数据:

1
1.1
1.1.1
1.1.1.1
1.1.2
1.10
1.11
1.2
1.9
Run Code Online (Sandbox Code Playgroud)

我想对它进行排序,得到的结果如下:

1
1.1
1.1.1
1.1.1.1
1.1.2
1.2
1.9    
1.10
1.11
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?简单使用"ORDER BY"会产生错误的结果,因为它是字典顺序.

sql postgresql select sql-order-by

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

Haskell和守卫的'循环'

我遇到了Haskell的问题.我有一个简单的代码:

petla szerokosc wysokosc pozycje = do
let plansza_x = oznacz_pola_dookola_jako_miejsca_na_skarby_wiele 
            pozycje
        (utworz_plansze pozycje szerokosc wysokosc) 
        szerokosc
 let x = make_list $ zlicz_x plansza_x
 guard ((sprawdz_kombinacje2 plansza_x pozycje (head x) szerokosc wysokosc) == True)
 x
Run Code Online (Sandbox Code Playgroud)

参数很好,但GHCI让我觉得奇怪.function make_list返回字符串列表,例如:[['_','_'],['*','_'],['_','*'],['*','*']].

我想loop获取此列表的第一个元素,将其作为参数粘贴到sprawdz_kombinacje2.如果该函数返回False,它将从列表中获取net元素.否则该函数petla应该返回String,例如:['_','*'].

问题:当我在GHCI中运行此函数时,它返回空列表,但它不应该:

*Main> petla 2 2 [(1,1,1)]
[]
Run Code Online (Sandbox Code Playgroud)

但是,当我添加return到最后一行时:

petla szerokosc wysokosc pozycje = do
let plansza_x = oznacz_pola_dookola_jako_miejsca_na_skarby_wiele 
            pozycje
        (utworz_plansze pozycje szerokosc wysokosc) 
        szerokosc
 let x = …
Run Code Online (Sandbox Code Playgroud)

haskell guard

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