运行以下代码时,我没有遇到运行时错误:
printReverse :: IO ()
printReverse = do
line <- getLine
when (not $ null line) $
do putStrLn $ reverse line
printReverse
return ()
Run Code Online (Sandbox Code Playgroud)
但是,当我运行只是我更换了相同的代码getLine有readLn :: IO String,我得到一个解析错误.
码:
printReverse :: IO ()
printReverse = do
line <- readLn :: IO String
when (not $ null line) $
do putStrLn $ reverse line
printReverse
return ()
Run Code Online (Sandbox Code Playgroud)
错误:
*** Exception: user error (Prelude.readIO: no parse)
Run Code Online (Sandbox Code Playgroud)
getLine和readLn之间的区别是什么?
假设我有一个位于http://www.randomurl.com/jobs.json的JSON文件,它看起来像这样:
{ "jobs": [
{ "task" : "turn burgers" ,
"who" : "Anni" ,
"place" : "Quick"}
,
{ "task" : "dishes" ,
"who" : "Bob" ,
"place" : "McDo"}
]}
Run Code Online (Sandbox Code Playgroud)
我做了一个解码器:
type alias Job = {
task : String
, who : String
, place: String
}
type alias Jobs = List Job
decoder : Decoder Job
decoder =
Decode.object3 Job
(Decode.at ["attributes", "task"] Decode.string)
(Decode.at ["attributes", "who"] Decode.string)
(Decode.at ["attributes", "place"] Decode.string)
decoderColl : Decoder Jobs …Run Code Online (Sandbox Code Playgroud) 我在使用状态模式时遇到问题,我不知道如何在State不使用的情况下检查 a是否属于某个实例instanceOf(因为这被认为是一种不好的做法)。
TCPConnection持有一个TCPState对象。假设我想获得所有TCPConnections具有 state 的TCPEstablished。我该怎么做?

一种方法是:
public List<TCPConnection> getAllEstablished() {
List<TCPConnection> list = new ArrayList<TCPConnection>();
for(TCPConnection tcp : allConnections) {
if(tcp.getState().instanceOf(TCPEstablished)) {
list.add(tcp);
}
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
但这使用instanceOf,我宁愿不使用它。有没有更好的方法?还是我的使用instanceOf有效?
我使用Doc2Vec标记作为我的文档的唯一标识符,每个文档都有不同的标记,没有语义含义.我正在使用标签查找特定文档,以便我可以计算它们之间的相似性.
标签会影响我的模型的结果吗?
在本教程中,他们讨论了一个参数train_lbls=false,将其设置为false,没有为标签(标签)学习的表示.
该教程有点过时了,我猜参数不再存在,Doc2Vec如何处理标签?
类型:
data Command a = Command String (a -> IO a)
Run Code Online (Sandbox Code Playgroud)
功能:
iofunc_ :: String -> (a -> IO ()) -> Command a
iofunc_ s f = Command s (\x -> do f x ; return x)
Run Code Online (Sandbox Code Playgroud)
分号在lambda表达式中做了(\x -> do f x ; return x)什么?
from pypodio2 import api
# Authenticate as App
podio_client = api.OAuthAppClient(
client_id=PODIO_CLIENT_ID,
client_secret=PODIO_CLIENT_SECRET,
app_id=PODIO_APP_ID,
app_token=PODIO_APP_TOKEN,
)
# Set limit to 100
items = podio_client.Item.filter(app_id=PODIO_APP_ID, attributes={}, limit=100)
Run Code Online (Sandbox Code Playgroud)
我的应用程序共有 251 个项目,我预计 API 将返回 100 个项目,但它只返回 20 个...如何解决此问题?
打印(项目['总计'])
第251章
打印(项目['过滤'])
第251章
打印(len(项目['项目'])
20
更新
我用 requests 库尝试过,但仍然没有成功......
import requests
payload = {
"filters":{},
"limit": 30
}
resp = requests.post(url="https://api.podio.com/item/app/randomappid/filter/",
headers={'authorization': 'OAuth2 randomn0mber'},
data=payload)
Run Code Online (Sandbox Code Playgroud)
len(resp.json()['项目'])
20
API调用文档:https://developers.podio.com/doc/items/filter-items-4496747
该函数从元组列表中valueOf获取Int相应的值String.有人可以解释第三行是如何工作的吗?
type State = [(String,Int)]
valueOf :: State -> String -> Int
valueOf xs var = head [b | (a,b) <- xs , a ==var ]
Run Code Online (Sandbox Code Playgroud)
我从未见过这样的Haskell表达式,我更习惯于这样表达:
(\xs -> length xs > 15)
Run Code Online (Sandbox Code Playgroud) 类型:
data Command a = Command String (a -> IO a)
Run Code Online (Sandbox Code Playgroud)
功能:
iofunc :: String -> (a -> IO a) -> Command a
iofunc = Command
func :: String -> (a -> a) -> Command a
func s f = iofunc s (return . f)
Run Code Online (Sandbox Code Playgroud)
有人可以解释(return . f)类型检查的方式(a -> IO a)吗?
我正在尝试使用向下的API将部署名称设置为环境变量,但是我的容器一直崩溃而没有任何日志记录。我正在使用busybox打印环境变量。我在Pod上使用成功,但在部署上却没有运气:这是我的YAML:
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: test-d
name: test-deploy
spec:
replicas: 1
selector:
matchLabels:
app: test-d
template:
metadata:
labels:
app: test-d
spec:
command:
- sh
- "-c"
- "echo Hello Kubernetes, I am $MY_DEPLOY_NAME in $MY_CLUSTER_NAME and $MY_NAMESPACE! && sleep 3600"
containers:
-
image: busybox
name: test-d-container
env:
-
name: MY_DEPLOY_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
-
name: MY_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
-
name: MY_CLUSTER_NAME
value: production
Run Code Online (Sandbox Code Playgroud)
我想念什么?
更新:
很明显,我的缩进是搞砸了,谢谢你指出这一点,但是我的问题的主要部分仍然不清楚。如何从容器中获取部署名称?
整数扩展数字,为什么我在底部得到错误?
interface Predicate<T> {
public abstract boolean check(T t);
}
Predicate<? extends Number> predUpper = null;
predUpper.check(new Integer(73));
Run Code Online (Sandbox Code Playgroud)
错误:谓词类型中的方法检查(捕获#6-of?extends Number)不适用于参数(整数)
我读过:类型Map <String中的方法,捕获#1-of?extends Object>不适用和<?超级T>和<?在Java中扩展T>
也许是一个简单的问题,但我被困住了.为什么i不能解决变量?
Map<Integer, String> testMap = new HashMap<>();
List<Integer> integers = new ArrayList<>();
for(Integer i : integers);
{
String str = testMap.get(i); //i cannot be resolved to a variable
}
Run Code Online (Sandbox Code Playgroud)