| Jones, S. P. and Hughes, J.(eds.): The Haskell 98 Report, 1999. Available from http://www.haskell.org/denition/. |
....it to a so called maximum marking problem. Our approach not only automatically guarantee the correctness of the derived algorithm, but also is easy to derive new algorithms for modi cation of the problem. Throughout this paper, we use notation like the functional programming language Haskell [5]. 2 The Problem of Mining Optimized Gain Association Rules In this section, we show the problem of mining optimized gain association rules [2] can be transformed to the k MSS problem. Recall the problem in Section 1. Input database is a set of tuples, each of which holds information about a ....
....e ective sublist and splitting it, and its complexity is O(kn) 2] For example, consider 2 MSS problem for input list [5; 10; 20; 15; 30; 5] At the rst path, solve 1 MSS. As a result, the sublist [20; 15; 30] is obtained. At the second path, let s 1 = 20; 15; 30] t 1 = 5; 10] and t 2 = [ 5]. In this case, we split s 1 to [20] 15] 30] and get the result [20] 30] This algorithm is smart, but its correctness is not so obvious. In fact, verifying this algorithm needs careful consideration [2] On the contrary, we will derive O(kn) algorithm from simple speci cation, and the ....
Jones, S. P. and Hughes, J.(eds.): The Haskell 98 Report, 1999. Available from http://www.haskell.org/denition/.
....group mechanism allows an arbitrary hierarchy of measurements to be specified. Once a daemon has identified its peers, it constructs a randomized list of bandwidth and latency tests to each peer. Gloperf does end to end bandwidth and latency measurements based a librarized version of netperf [8]. Gloperf uses a netperf TCP STREAM test such that TCP IP overhead is included in the measured throughput. Send and receive buffer sizes are the local system defaults. Hence, the performance observed is what an untuned application would observe. Gloperf uses a netperf TCP RR test to measure ....
R. Jones. Netperf. Technical report, 1999. Available from http://www.netperf.org/netperf/NetperfPage.html.
.... Fix f 2 ) mapFix mapf (In v) In (mapf (mapFix mapf ) v) which takes a polymorphic function as argument. In other words, mapFix has a socalled rank 2 type signature (Leivant, 1983) As an aside, note that Haskell 98 does not support rank 2 types. Recent versions of GHC (Team, 1999) and Hugs (Jones Peterson, 1999), however, provide the necessary extensions. The argument function, mapf , has a more general type than one would probably expect: it takes a function of type a 1 a 2 to a function of type f 1 a 1 f 2 a 2 . By contrast, the mapping function for List (which also has kind ) takes a 1 a 2 ....
Jones, M.P., & Peterson, J.C. 1999 (May). Hugs 98 user manual. Available from http://www.haskell.org/hugs.
....v) which takes a polymorphic function as argument. In other words, mapFix has a so called rank 2 type signature [16] Though not in the current language definition, rank 2 type signatures are supported by recent versions of the Glasgow Haskell Compiler GHC [28] and the Haskell interpreter Hugs [15]. The argument function, mapf , has a more general type than one would probably expect: it takes a function of type a 1 a 2 to a function of type f 1 a 1 f 2 a 2 . By contrast, the mapping function for List (which also has kind ) takes a 1 a 2 to List a 1 List a 2 . The de nition ....
M.P. Jones and J.C. Peterson. Hugs 98 User Manual, May 1999. Available from http://www.haskell.org/hugs.
....look up function that takes a look up function for the base type a and yields a lookup function for List a. Note that applyList has a rank 2 type signature [10] which is not legal Haskell. However, recent versions of the Glasgow Haskell Compiler GHC [16] and the Haskell interpreter Hugs [9] support rank 2 types. ut 3.3 Tabulation Tabulation is the inverse of look up and, in fact, we can derive its de nition by inverse function construction. For the derivation we use a slight reformulation of apply that allows for more structured calculations ( O is the junk combinator, see, for ....
M.P. Jones and J.C. Peterson. Hugs 98 User Manual, May 1999. Available from http://www.haskell.org/hugs.
....instance (Eq a1, Eq ak) Eq (T a1 : ak) Clearly, this form is too limited to handle MapF or MapS. In [20] an extension of the class system is described, which allows for more general instance contexts. Using this extension, which has been realized in GHC [18] and in Hugs 98 [15], the following Eq instance can be derived for MapF (do you guess how ( is implemented ) instance (Eq (m (m v) Eq (MapF m v) However, if we try to derive Eq for MapS, both compilers loop Even if the generalized form of instance contexts is used, the type constraints cannot be nitely ....
M.P. Jones and J.C. Peterson. Hugs 98 User Manual, May 1999. Available from http://www.haskell.org/ hugs.
....TCP IP processing. For example, a Pentium 100 running Linux achieved a loop back throughput of 84 Mbps, thus already practically precluding the possibility of achieving the theoretical maximum TCP throughput for this machine. For comparison of the results, we refer to the netperf results database [5]: For instance, TCP loop back results for P 100 machines running Win95 indicate that the surprisingly bad number for Johann is no error. Machine Operating System Throughput (in Mbps) Sun (Kastor) SunOS 408.88 PPro 200 (Christian) Linux 347.25 P 100 (Carola) Linux 84.42 PPro 200 (Maria) WinNT ....
Rick Jones. The Netperf Results Database. available from http://www.cup.hp.com/netperf /numbers/NetperfBrowse.html.
....independent of the particular TCP implementation on the end hosts. Topology d, on the other hand, helps end users to know what throughput they can actually get using their particular TCP flavor, since this is the performance perceived by applications. For this reason, we decided to use netperf [12] as the throughput measurement tool against which we compare topology d s bandwidth estimates to evaluate their accuracy. We tried to use TReno to get an upper bound for the throughput that can be expected out of a particular network link, but TReno requires root access for installation 2 . We ....
....geographic location, how well they were connected, and how stable (in terms of uptime) they were. Table 3 lists the four data collection sites. We also limited the data collection period to one week; during these seven days, we ran ping and netperf every hour while running topology d. Netperf [12] is a benchmarking tool that can be used to measure bulk data transfer performance in both TCP and UDP modes; it estimates the available network throughput by sending packets of configurable length over a configurable period of time (10 seconds by default) This bandwidth measuring technique is ....
R. Jones. netperf. Available from http://www.cup.hp.com/netperf/NetperfPage.html.
....method used in the implementation and the implementation itself are presented. The programming language used in the implementation is Gofer. We will give an overview of this language, which is not exhaustive. A complete presentation of Gofer can be found in the user manual of the Gofer system [Jon], on which this section is based. The following remarks constitute an extremely concise characterization of the language. Gofer is a lazy functional programming language. It is strongly typed, it supports type polymorphism, and its functions are curried. Gofer has a powerful system of type ....
Mark P. Jones. An introduction to gofer. Available from http://www.cs.yale.edu/.
....number of extensions that would make interesting topics for future research, including polymorphic kinds, subkinding, and record product kinds. A simple extension of the kind system adding a new row kind has already proved to be useful for the Trex implementation of extensible records in Hugs [3, 7]. 4 Types The next step is to define a representation for types. Stripping away syntactic sugar, Haskell type expressions are either type variables or constants (each of which has an associated kind) or applications of one type to another: applying a type of kind k1 # k2 to a type of kind k1 ....
....name, and a type: data Pred = IsIn Class Type deriving Eq Haskell s classes represent sets of types. For example, a predicate IsIn c t asserts that t is a member of the class c. It would be easy to extend the Pred datatype to allow other forms of predicate, as is done with Trex records in Hugs [7]. Another frequently requested extension is to allow classes to accept multiple parameters, which would require a list of Types rather than the single Type in the definition above. 3 The typeset version of the symbol :# is written : in the concrete syntax of Haskell, and corresponds directly ....
[Article contains additional citation context not shown here]
M. P. Jones and J. C. Peterson. Hugs 98 User Manual, May 1999. Available from http://www.haskell.org/hugs/.
....of conditional formatting is an exponential growth of the pos sible formattings. While the traditional algorithms only consider a small subset of these formattings in order to limit execution time, more advanced formatting algorithms are designed in the community of functional programming [12, 26, 14, 34]. These algorithms heavily depend on lazy evaluation to abstract over execution time. This allows the pretty printers to select an optimal formatting in a lazy fashion from all possible ones. Several formatting primitives have been suggested as alternative to the blanks and blocks of Oppen. ....
S. P. Jones. A Pretty Printer Library in Haskell, Version 3.0, 1997. Available from http://www.dcs.gla.ac.uk/ simonpj/pretty.html.
....a number of extensions that would make interesting topics for future research, including polymorphic kinds, subkinding, and record product kinds. A simple extension of the kind system adding a new row kind has already proved to be useful for the Trex implementation of extensible records in Hugs [3, 7]. 4 Types The next step is to de ne a representation for types. Stripping away syntactic sugar, Haskell type expressions are either type variables or constants (each of which has an associated kind) or applications of one type to another: applying a type of kind k1 k2 to a type of kind k1 ....
....name, and a type: data Pred = IsIn Class Type deriving Eq Haskell s classes represent sets of types. For example, a predicate IsIn c t asserts that t is a member of the class c. It would be easy to extend the Pred datatype to allow other forms of predicate, as is done with Trex records in Hugs [7]. Another frequently requested extension is to allow classes to accept multiple parameters, which would require a list of Types rather than the single Type in the de nition above. 3 The typeset version of the symbol : is written : in the concrete syntax of Haskell, and corresponds directly to ....
[Article contains additional citation context not shown here]
M. P. Jones and J. C. Peterson. Hugs 98 User Manual, May 1999. Available from http://www.haskell.org/hugs/.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC