考虑一下代码:
f(command1, UserId) ->
case is_registered(UserId) of
true ->
%% do command1
ok;
false ->
not_registered
end;
f(command2, UserId) ->
case is_registered(UserId) of
true ->
%% do command2
ok;
false ->
not_registered
end.
is_registered(UserId) ->
%% some checks
Run Code Online (Sandbox Code Playgroud)
现在假设有很多命令,它们最初都是调用is_registered.有没有办法概括这种行为(重构此代码)?我的意思是在所有命令中放置相同的案例并不是一个好主意.
有人能指出我在Scheme中的基本文件I/O操作示例吗?
我只想尝试对文件进行基本的读/写/更新操作.
发现很难,因为没有适当的资源可供学习.
如何在Erlang中使用方法等定义一些类(或类型)对象(如整数比较)?
例如,我怎样才能这样做:
qsort([Pivot|T]) ->
qsort([X || X <- T, X =< Pivot])
++ [Pivot] ++
qsort([X || X <- T, X > Pivot]).
Run Code Online (Sandbox Code Playgroud)
如果我想排序某些对象的列表,例如人.
默认或无点样式编程允许人们创建函数而不考虑其参数.这可以在F#中完成吗?
我将用一个简单的例子来说明我的问题.在Java,C或任何其他OOP语言中,我可以pie用类似于此的方式创建一个类:
class Apple{
public String flavor;
public int pieces;
private int tastiness;
public goodness(){
return tastiness*pieces;
}
}
Run Code Online (Sandbox Code Playgroud)
使用Scheme的最佳方法是什么?我想我可以做这样的事情:
(define make-pie
(lambda (flavor pieces tastiness)
(list flavor pieces tastiness)))
(define pie-goodness
(lambda (pie)
(* (list-ref pie 1) (list-ref pie 2))))
(pie-goodness (make-pie 'cherry 2 5))
;output: 10
Run Code Online (Sandbox Code Playgroud)
...樱桃是味道,2是碎片,5是味道.然而,没有类型安全或可见性,所有东西都只是在一个未标记的列表中.我怎样才能改善这一点?
旁注:make-pie程序需要3个参数.如果我想让它们中的一些是可选的(就像我能够使用像Java或C这样的大括号语言),那么将参数作为一个列表(将参数视为列表)是一种好习惯-并不需要一个参数,它是一个列表)和处理他们的方式?
我收到了几个答案,链接到各种扩展/库,可以满足我对计划中OOP的渴望.这很有帮助,谢谢.
然而,虽然我可能没有很好地传达它,但我也想知道在pie没有这些类或库的情况下实现上述对象的最佳方法是什么,因此我可以更好地理解方案最佳实践.
我来自C,Fortran,Python,R,Matlab和一些Lisp的背景 - 我在Haskell上读过一些东西.JL或APL家族其他语言中有哪些简洁的想法/例子是独特的,而不是用更常见的语言实现的?我总是有兴趣找出我所缺少的东西......
我有2个清单:
List1 = [1,2,3].
List2 = ["asd", "sda", "dsa"].
Run Code Online (Sandbox Code Playgroud)
如何在下面的回合中打印此列表:
1 asd 2 sda 3 dsa
谢谢.
我正在自学斯卡拉,我有一个哲学问题.模式匹配Scala 的语言功能,还是只是库功能?换句话说,除了名字之外,我是否能够充分熟练地编写xmatch一个与match各方面相同的功能?实际上,我认为这些是两个略有不同的问题:匹配库功能,它可能是一个库功能吗?
我正在考虑重新编写匹配,纯粹是作为练习,但我想要一些保证它是可能的.
我在haskell中编写应用程序,我想将一些函数和数据类型导出到其他文件,然后能够在我的主文件中使用它们.
这该怎么做 ?
感谢帮助
如何在Scheme中使用数组?
特别是,我正在尝试使用memoization实现递归的fibonacci过程.Scheme中是否存在数组?
如果没有,我该如何实现memoization?