紧急求助,关于SML的入门问题

程序设计讨论和代码交流。

版主: evilsatanAkuo管理小组

头像
junmeting
帖子: 1
注册: 2006-10-30 8:42
QQ: 0
联系:

紧急求助,关于SML的入门问题

帖子junmeting » 2006-10-30 9:15

小弟近来学校开始教授SML,因为在异国读书,学校内留学生比较少,学习的非常吃力。
最近开始的SML,因为基础薄弱,搞得我焦头烂额。
诚心求助,希望大家帮忙,先谢谢了。
要求是定义以下函数,一共6个,自己只会做2个。。。。。
1:
funpow n f = fn(n是次方): int -> ('a -> 'a) -> 'a -> 'a
要求:f的n次幂,但是n小于0的时候,输出f
fun twice x = 2*x的时候,
funpow 3 twice 5;
val it = 40:int
funpow 0 twice 5;
val it = 5:int


2:
rev_assoc : ''a -> ('b * ''a) list -> ('b * ''a)
要求:
例子: 输入 rev_assoc 5[(3,4),(33,5),(11,5)];
输出 val it = 33:int
输入 rev_assoc 2[(3,4),(33,5),(11,5)];
输出 NotFound
就是按从左往右的顺序从数列[(3,4),(33,5),(11,5)]中找和第一引数(5)相同的第二项数,如果找到,就输出其第一项数(33),如果没找到,则输出NotFound-----------------exception NotFound


3:
$,
没看太懂
,似乎是定义合成函数的符号?
G$F = GoF(复合函数),用$代替o
要求: 输入 (twice$twice)5;
输出 val it =20 :int ----------(5*2)*2=20

-(~$~)5;
val it = 5:int

- val L1 =[1,2];
val L1 = [1,2]: int list

使用infix
- op$;
val it = val it = fn:('b -> ''a) *("c->"a) -> "c -> "b


以上3道,还有一道小弟正在自己努力解决中。
希望各位大大抽出时间看一看。



如果发错地方,请告知应法往何处,谢谢。

回到 “程序设计”

在线用户

用户浏览此论坛: 没有注册用户 和 4 访客