如果string是.net框架中String的别名,为什么会发生这种情况,我应该如何解释它:
type JustAString = string
> type JustAString = string
type JustAStringAgain = String
> type JustAStringAgain = | String
Run Code Online (Sandbox Code Playgroud) 鉴于此查询(从这里)
let pAfollowers =
client.Cypher
.Match("n<-[:follows]-e")
.Where(fun n -> n.Twitter = "tA")
.Return<Person>("e")
.Results
.Select(fun x -> x.Name)
Run Code Online (Sandbox Code Playgroud)
我想调整它并让它返回打包在一起的多个值.不确定类型的外观:
let pAfollowers =
client.Cypher
.Match("n<-[r:follows]-e")
.Where(fun n -> n.Twitter = "tA")
.Return<???>("n, r, e")
Run Code Online (Sandbox Code Playgroud)
其次,我想知道是否有可能在a之后有一个return语句CreateUnique.我试图调整此查询:
let knows target (details : Knows) source =
client.Cypher
.Match("(s:Person)", "(t:Person)")
.Where(fun s -> s.Twitter = source.Twitter)
.AndWhere(fun t -> t.Twitter = target.Twitter)
.CreateUnique("s-[:knows {knowsData}]->t")
.WithParam("knowsData", details)
.ExecuteWithoutResults()
Run Code Online (Sandbox Code Playgroud)
让它回归s,t而且details.
我正在学习F#agents(MailboxProcessor).
我正在处理一个非常传统的问题.
dataSource),它是流数据的来源.数据必须由一系列代理(dataProcessor)处理.我们可以将其dataProcessor视为某种跟踪设备.dataProcessor可以处理其输入的速度.我正在探索解决这个问题的方法.
第一个想法是实现堆栈(LIFO)dataSource.dataSource当dataProcessor可用于接收和处理数据时,将发送最新的观察结果.该解决方案可能有效,但dataProcessor可能需要被阻止和重新激活,因此可能会变得复杂; 并传达其状态dataSource,导致双向沟通问题.这个问题可以归结为一个blocking queue在消费者-生产者问题,但我不知道..
在第二个想法是有 dataProcessor照顾的消息排序.在这个架构中,dataSource只需在dataProcessor队列中发布更新.dataProcessor将用于Scan获取队列中可用的最新数据.这可能是要走的路.但是,我不确定在当前的设计中MailboxProcessor是否可以清除消息队列,删除旧的过时消息.此外,在这里写道:
不幸的是,当前版本的F#中的TryScan功能有两种方式.首先,重点是指定超时,但实现实际上并不尊重它.具体而言,不相关的消息会重置计时器.其次,与其他扫描功能一样,在锁定下检查消息队列,该锁定防止任何其他线程在扫描期间发布,这可能是任意长的时间.因此,TryScan函数本身往往会锁定并发系统,甚至可能引入死锁,因为调用者的代码是在锁内部进行评估的(例如,当锁定下的代码阻塞时,从函数参数发送到Scan或TryScan会使代理死锁获得已经存在的锁定.
将最新观察结果反弹可能是一个问题.这篇文章的作者@Jon Harrop暗示了这一点
我设法围绕它进行构建,结果架构实际上更好.本质上,我热切地
Receive使用我自己的本地队列来消息和过滤所有消息.
这个想法肯定值得探索,但在开始使用代码之前,我会欢迎一些关于如何构建解决方案的输入.
谢谢.
班级:
type NotAbstract () =
member this.WithOptionalParameters (x, ?y) =
let y = defaultArg y 10
x + y
Run Code Online (Sandbox Code Playgroud)
具有以下类型签名:
type NotAbstract =
class
new : unit -> NotAbstract
member WithOptionalParameters : x:int * ?y:int -> int
end
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用:
[<AbstractClass>]
type AbstractExample () =
abstract WithOptionalParameters: int * ?int -> int /// Ouch...
type NotAbstract () =
inherit AbstractExample ()
override this.WithOptionalParameters (x, ?y) =
let y = defaultArg y 10
x + y
Run Code Online (Sandbox Code Playgroud)
如何在带有可选参数的函数的抽象定义中编写正确的类型签名?我没有在这里找到任何暗示.
PS:我知道(类似的)结果可以通过多态实现
我想在fsi中运行一个脚本.我收到以下错误.
无法加载文件或程序集'FSharp.Core,Version = 4.3.1.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.
我发现以下引用建议我可能必须在Visual Studio中的某处更新默认的FSharp.Core版本,使用nuget下载包是不够的.
我不知道如何解决这个问题,我担心永久性地损坏vs配置.
我正在尝试使用此代码片段 并且收到以下错误消息:
System.Data.Odbc.OdbcException (0x80131937): ERROR [HY000] General error: Invalid file dsn ''
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection o
wningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldC
onnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnecti
onOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.Odbc.OdbcConnection.Open()
Run Code Online (Sandbox Code Playgroud)
精简后的代码是:
open System
open System.Data.Odbc
let connectToAccess filename = …Run Code Online (Sandbox Code Playgroud) 我知道关于这个主题还有其他问题,例如:
..但是,嘿,我是F#的新手,但仍然没有得到它.
我有一个F#project(thelibrary),它包含一些模块.该项目在解决方案资源管理器中引用了所有必需的库.每个.fs文件都会打开模块中使用的库.F#项目编译正确.
然后我有另一个包含脚本的F#项目.我引用thelibrary和thelibrary自己使用的库.在脚本中,我引用#r了dll thelibrary以及所使用的所有库thelibrary.然后open是我所有的模块.Intellisense说在我执行脚本之前一切都很好.
该脚本返回错误:
error FS0074: The type referenced through 'Fmat.Numerics.Matrix`2' is defined in an assembly that is not referenced. You must add a reference to assembly 'Fmat.Numerics'.
Run Code Online (Sandbox Code Playgroud)
破解这个问题的程序是什么?我该如何从那里出发?我感兴趣的是这个特定问题的解决方案,但同样,一个菜谱配方来解决这类问题,这对我来说是一个令人沮丧的原因.
谢谢.
我有一张德国地图,以及几个城市的坐标.
plot正确显示点.我想改为使用scatter,以便能够针对其他变量为市场着色,然后显示一个colorbar.该代码在控制台上运行,但是当我更换点不会显现map.plot有map.scatter.
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
plt.figure(1)
map = Basemap(projection='merc',
resolution='l',
llcrnrlat=44.0,
llcrnrlon=5.0,
urcrnrlat=57.0,
urcrnrlon=17)
map.drawcoastlines()
map.drawcountries()
map.fillcontinents(color='lightgray')
map.drawmapboundary()
long = np.array([ 13.404954, 11.581981, 9.993682, 8.682127, 6.960279,
6.773456, 9.182932, 12.373075, 13.737262, 11.07675 ,
7.465298, 7.011555, 12.099147, 9.73201 , 7.628279,
8.801694, 10.52677 , 8.466039, 8.239761, 10.89779 ,
8.403653, 8.532471, 7.098207, 7.216236, 9.987608,
7.626135, 11.627624, 6.852038, 10.686559, 8.047179,
8.247253, 6.083887, 7.588996, 9.953355, 10.122765])
lat = …Run Code Online (Sandbox Code Playgroud) 我是 F# 的新手,将其视为 Matlab 的替代品。
关于这个问题,我如何创建一个空的意甲和一个空的框架。如果我没有错过它,为什么图书馆中没有设计一个空的 Serie 或 Frame 之类的list.empty?
我正在努力解决这个通用表达式:
type World<'a, 'b, 'c> = World of 'a * 'b * 'c
type StateFunc<'State, 'T> = 'State -> 'T * 'State
type StateMonadBuilder<'State>() =
// M<'T> -> M<'T>
member b.ReturnFrom a : StateFunc<'State, 'T> = a
// 'T -> M<'T>
member b.Return a : StateFunc<'State, 'T> = ( fun s -> a, s)
// M<'T> * ('T -> M<'U>) -> M<'U>
member b.Bind(p : StateFunc<_, 'T>, rest : 'T -> StateFunc<_,_>) : StateFunc<'State, 'U> =
(fun s ->
let …Run Code Online (Sandbox Code Playgroud)