FUNCTIONAL PROGRAMMING
|
|
|
- Osborne Quinn
- 10 years ago
- Views:
Transcription
1 FUNCTIONAL PROGRAMMING User-defined Data Types Prof. Clarkson Summer 2015 Today s music: Pokémon Theme by Jason Paige
2 Review Yesterday: New idioms and library functions: Map, fold, and other higher-order functions Today: Ways to define your own data types: records, tuples, variants, options
3 RECORDS
4 Record definition A record contains several named fields Before you can use a record, must define a record type: type time = {hour: int; min: int; ampm: string} To build a record: Write a record expression: {hour=10; min=10; ampm="am"} Order of fields doesn t matter: {min=10; hour=10; ampm="am"} is equivalent To access record's field: r.hour
5 Record expressions Syntax: {f1 = e1; ; fn = en} Evaluation: If e1 evaluates to v1, and en evaluates to vn Then {f1 = e1; ; fn = en} evaluates to {f1 = v1,, fn = vn} Result is a record value Type-checking: If e1 : t1 and e2 : t2 and en : tn, and if t is a defined type of the form {f1:t1,, fn:tn} then {f1 = e1; ; fn = en}: t
6 Record field access Syntax: e.f Evaluation: If e evaluates to {f = v, } Then e.f evaluates to v Type-checking: If e : t1 and if t1 is a defined type of the form {f:t2, } then e.f : t2
7 Evaluation notation We keep writing statements like: If e evaluates to {f = v, } then e.f evaluates to v Let's introduce a shorthand notation: Instead of "e evaluates to v" write "e ==> v" So we can now write: If e ==> {f = v, } then e.f ==> v
8 By name vs. by position Fields of record are identified by name order we write fields in expression is irrelevant Opposite choice: identify by position e.g., Would the student named NN. step forward? vs. Would the student in seat n step forward? You re accustomed to both: Java object fields accessed by name Java method arguments passed by position (but accessed in method body by name) OCaml has something you might not have seen: A kind of data accessed by position
9 PAIRS AND TUPLES
10 Pairs A pair of data: two pieces of data glued together e.g., (1,2) (true, "Hello") ([1;2;3], 0.5) We need language constructs to build pairs and to access the pieces...
11 Pairs: building Syntax: (e1,e2) Evaluation: If e1 ==> v1 and e2 ==> v2 Then (e1,e2) ==> (v1,v2) A pair of values is itself a value Type-checking: If e1:t1 and e2:t2, then (e1,e2):t1*t2 A new kind of type, the product type
12 Pairs: accessing Syntax: fst e and snd e Projection functions Evaluation: If e ==> (v1,v2) then fst e ==> v1 and snd e ==> v2 Type-checking: If e: ta*tb, then fst e has type ta and snd e has type tb
13 Tuples Actually, you can have tuples with more than two parts A new feature: a generalization of pairs Syntax, semantics are straightforward, except for projection... (e1,e2,,en) t1 * t2 * * tn fst e, snd e,??? Instead of generalizing projection functions, use pattern matching New kind of pattern, the tuple pattern: (p1,..., pn)
14 Pattern matching tuples match (1,2,3) with (x,y,z) -> x+y+z (* ==> 6 *) let thrd t = match t with (x,y,z) -> z (* thrd : 'a*'b*'c -> 'c *) Note: we never needed more than one branch in the match expression...
15 Pattern matching without match (* OK *) let thrd t = match t with (x,y,z) -> z (* good *) let thrd t = let (x,y,z) = t in z (* better *) let thrd t = let (_,_,z) = t in z (* best *) let thrd (_,_,z) = z
16 Extended syntax for let Previously we had this syntax: let x = e1 in e2 let [rec] f x1... xn = e1 in e2 Everywhere we had a variable identifier x, we can really use a pattern! let p = e1 in e2 let [rec] f p1... pn = e1 in e2 Old syntax is just a special case of new syntax, since a variable identifier is a pattern
17 Pattern matching arguments (* OK *) let sum_triple t = let (x,y,z) = t in x+y+z (* better *) let sum_triple (x,y,z) = x+y+z Note how that last version looks syntactically like a function in C/Java!
18 Question #3 What is the type of this expression? let (x,y) = snd( zar,( doz,42)) in (42,y) A. {x:string; y:int} B. int*int C. string*int D. int*string E. string*(string*int)
19 Question #3 What is the type of this expression? let (x,y) = snd( zar,( doz,42)) in (42,y) A. {x:string; y:int} B. int*int C. string*int D. int*string E. string*(string*int)
20 Unit Can actually have a tuple () with no components whatsoever Think of it as a degenerate tuple Or, like a Boolean that can only have one value Unit is a value written () and a type written unit Might seem dumb now; will be useful later!
21 Pattern matching records (* OK *) let get_hour t = match t with {hour=h; min=m; ampm=s} -> h (* better *) let get_hour t = match t with {hour=h; min=_; ampm=_} -> h (* better *) let get_hour t = match t with {hour; min; ampm} -> hour (* better *) let get_hour t = match t with {hour} -> hour (* better *) let get_hour t = let {hour} = t in hour (* better *) let get_hour {hour} = hour (* best *) let get_hour t = t.hour New kind of pattern, the record pattern: {f1[=p1];...; fn[=pn]}
22 By name vs. by position, again How to choose between coding (4,7,9) and {f=4;g=7;h=9}? Tuples are syntactically shorter Records are self-documenting For many (4? 8? 12?) fields, a record is usually a better choice
23 VARIANTS
24 Variant type day = Sun Mon Tue Wed Thu Fri Sat let day_to_int d = match d with Sun -> 1 Mon -> 2 Tue -> 3 Wed -> 4 Thu -> 5 Fri -> 6 Sat -> 7
25 Building and accessing variants Syntax: type t = C1... Cn the Ci are called constructors Evaluation: a constructor is already a value Type checking: Ci : t Accessing: use pattern matching; constructor name is a pattern
26 Pokémon variant
27 Pokémon variant type ptype = TNormal TFire TWater type peff = ENormal ENotVery ESuper let eff_to_float = function ENormal -> 1.0 ENotVery -> 0.5 ESuper -> 2.0 let eff_att_vs_def : ptype*ptype -> peff = function (TFire,TFire) -> ENotVery (TWater,TWater) -> ENotVery (TFire,TWater) -> ENotVery (TWater,TFire) -> ESuper _ -> ENormal
28 Argument order: records If you are worried about clients of function forgetting which order to pass arguments in tuple, use a record: type att_def = {att:ptype; def:ptype} let eff_att_vs_def : att_def -> peff = function {att=tfire;def=tfire} -> ENotVery {att=twater;def=twater} -> ENotVery {att=tfire;def=twater} -> ENotVery {att=twater;def=tfire} -> ESuper _ -> ENormal
29 Argument order: labeled arguments Or (though not quite as good) use labeled arguments: let eff_att_vs_def ~att ~def = match (att, def) with (TFire,TFire) -> ENotVery (TWater,TWater) -> ENotVery (TFire,TWater) -> ENotVery (TWater,TFire) -> ESuper _ -> ENormal let super = eff_att_vs_def ~att:twater ~def:tfire let super = eff_att_vs_def ~def:tfire ~att:twater let notvery = eff_att_vs_def TFire TWater
30 Variants vs. records vs. tuples Define Build/construct Access/destruct Variant type Constructor name Pattern matching Record type Record expression with { } Tuple N/A Tuple expression with ( ) Pattern matching OR field selection with dot operator. Pattern matching OR fst or snd Variants: one-of types aka sum types Records, tuples: each-of types aka product types
31 Question Which of the following would be better represented with records rather than variants? A. Coins, which can be pennies, nickels, dimes, or quarters B. Students, who have names and id numbers C. A plated dessert, which has a sauce, a creamy component, and a crunchy component D. A and C E. B and C
32 Question Which of the following would be better represented with records rather than datatypes? A. Coins, which can be pennies, nickels, dimes, or quarters B. Students, who have names and NetIDs C. A plated dessert, which has a sauce, a creamy component, and a crunchy component D. A and C E. B and C
33 OPTIONS
34 What is max of empty list? let rec max_list = function [] ->??? h::t -> max h (max_list t) How to fill in the??? min_int would be a reasonable choice or could raise an exception in Java, might return null... but OCaml gives us another option!
35 Options Options: t option is a type for any type t (much like t list is a type for any type t) Building and Type Checking and Evaluation: None has type 'a option much like [] has type 'a list None is a value Some e : t option if e:t much like e::[] has type t list if e:t If e==>v then Some e==>some v Accessing: match e with None ->... Some x ->...
36 Again: What is max of empty list? let rec max_list = function [] -> None h::t -> match max_list t with None -> Some h Some x -> Some (max h x) (* max_list : 'a list -> 'a option *) Very stylish! no possibility of exceptions no chance of programmer ignoring a null return
37 Recap: User-defined data types Records Tuples (pairs, unit) Variants Options
PostgreSQL Functions By Example
Postgre [email protected] credativ Group January 20, 2012 What are Functions? Introduction Uses Varieties Languages Full fledged SQL objects Many other database objects are implemented with them
Introduction to Python
Caltech/LEAD Summer 2012 Computer Science Lecture 2: July 10, 2012 Introduction to Python The Python shell Outline Python as a calculator Arithmetic expressions Operator precedence Variables and assignment
We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.
LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
Semantic Analysis: Types and Type Checking
Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors
J a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
There e really is No Place Like Rome to experience great Opera! Tel: 01213 573 866 to discuss your break to the Eternal City!
There e really is No Place Like Rome to experience great Opera! Tel: 01213 573 866 to discuss your break to the Eternal City! Date Fri Location 11 Sep 2015 Teatro dell'opera di Roma Opera Sat 12 Sep 2015
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
Adding GADTs to OCaml the direct approach
Adding GADTs to OCaml the direct approach Jacques Garrigue & Jacques Le Normand Nagoya University / LexiFi (Paris) https://sites.google.com/site/ocamlgadt/ Garrigue & Le Normand Adding GADTs to OCaml 1
9 Sat 11:30 am Golf with Tom and Harry
Student A Warm Up Work with a partner. What is your next appointment? Conversation Read and fill in the spaces. Scene: Pam and Bob work in different departments of ABC incorporated. Bob is calling Pam.
The Clean programming language. Group 25, Jingui Li, Daren Tuzi
The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was
4 th Grade Summer Mathematics Review #1. Name: 1. How many sides does each polygon have? 2. What is the rule for this function machine?
. How many sides does each polygon have? th Grade Summer Mathematics Review #. What is the rule for this function machine? A. Pentagon B. Nonagon C. Octagon D. Quadrilateral. List all of the factors of
2015 Continuing Education Classes
Continuing Education Classes of Health Sciences & of Health Sciences Month Title Dates Hours Cost Location Contact/Registration Information February 2/2 2:00pm 4:00pm $25.00 Integrative Health Practitioner
LAUREA MAGISTRALE - CURRICULUM IN INTERNATIONAL MANAGEMENT, LEGISLATION AND SOCIETY. 1st TERM (14 SEPT - 27 NOV)
LAUREA MAGISTRALE - CURRICULUM IN INTERNATIONAL MANAGEMENT, LEGISLATION AND SOCIETY 1st TERM (14 SEPT - 27 NOV) Week 1 9.30-10.30 10.30-11.30 11.30-12.30 12.30-13.30 13.30-14.30 14.30-15.30 15.30-16.30
Some Scanner Class Methods
Keyboard Input Scanner, Documentation, Style Java 5.0 has reasonable facilities for handling keyboard input. These facilities are provided by the Scanner class in the java.util package. A package is a
Chapter 7: Functional Programming Languages
Chapter 7: Functional Programming Languages Aarne Ranta Slides for the book Implementing Programming Languages. An Introduction to Compilers and Interpreters, College Publications, 2012. Fun: a language
How To Program In Scheme (Prolog)
The current topic: Scheme! Introduction! Object-oriented programming: Python Functional programming: Scheme! Introduction Next up: Numeric operators, REPL, quotes, functions, conditionals Types and values
Type Checking SQL for Secure Database Access
Type Checking SQL for Secure Database Access James Caldwell 1 and Ryan Roan 2 1 Department of Computer Science, University of Wyoming, Laramie, WY 82071 2 Handel Information Technologies, 200 South 3rd
Mailing instructions Home Direct
Mailing instructions Home Direct as of March 1, 2015 1 Posti Ltd Home Direct services Home Direct (service delivered inside Postinen) Home Direct, premium (individually delivered service) Mon Tue Wed Thu
PLAN YOUR PERFECT WINTER!
NONSTOP SKI & SNOWBOARD S 0 / SEASON 4 7 8 9 0 4 7 8 9 0 4 7 8 SAT SUN NOVEMBER 0 MON TUE WED THU FRI FRI FRI FRI SAT PLAN YOUR PERFECT WINTER! This calendar provides an overview of all our Canadian courses
14 Sep 2015-31 Jul 2016 (Weeks 1 - V14)
SOM/Cartwright LT,12 Tutorial,12,12 Tutorial Marketing Marketing Large Group Session 1 Wk 2 SOM/TS0.24/0.25 Marketing Large Group Session 2 Wk 2 SOM/TS0.24/0.25 Mon,12 Tutorial,12,12 Tutorial MAN6351D
The Properties of Signed Numbers Section 1.2 The Commutative Properties If a and b are any numbers,
1 Summary DEFINITION/PROCEDURE EXAMPLE REFERENCE From Arithmetic to Algebra Section 1.1 Addition x y means the sum of x and y or x plus y. Some other words The sum of x and 5 is x 5. indicating addition
3 Improving the Crab more sophisticated programming
3 Improving the Crab more sophisticated programming topics: concepts: random behavior, keyboard control, sound dot notation, random numbers, defining methods, comments In the previous chapter, we looked
Social-Media Posts for September s Life Insurance Awareness Month
Social-Media Posts for September s Life Insurance Awareness Month Life Happens has created a Facebook post and a Tweet for each day of Life Insurance Awareness Month. Feel free to use as-is or modify to
www.sahajsolns.com Chapter 4 OOPS WITH C++ Sahaj Computer Solutions
Chapter 4 OOPS WITH C++ Sahaj Computer Solutions 1 Session Objectives Classes and Objects Class Declaration Class Members Data Constructors Destructors Member Functions Class Member Visibility Private,
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
Utility Software II lab 1 Jacek Wiślicki, [email protected] original material by Hubert Kołodziejski
MS ACCESS - INTRODUCTION MS Access is an example of a relational database. It allows to build and maintain small and medium-sized databases and to supply them with a graphical user interface. The aim of
DECLARATION OF PERFORMANCE NO. HU-DOP_TN-212-25_001
NO. HU-DOP_TN-212-25_001 Product type 212 (TN) 3,5x25 mm EN 14566:2008+A1:2009 NO. HU-DOP_TN-212-35_001 Product type 212 (TN) 3,5x35 mm EN 14566:2008+A1:2009 NO. HU-DOP_TN-212-45_001 Product type 212 (TN)
Tutorial on Writing Modular Programs in Scala
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 13 September 2006 Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45 Welcome to the
Phased Return to Work Guidance Human Resources Department
Phased Return to Work Human Resources Department Guidance Lead Director: Director of Human Resources, Organisational Development and Student Support Policy issue date: Policy to be reviewed every 2 years.
Software Model Checking. Equivalence Hierarchy
Software Equivalence Hierarchy Moonzoo Kim CS Dept. KAIST CS750B Software Korea Advanced Institute of Science and Technology Equivalence semantics and SW design Preliminary Hierarchy Diagram Trace-based
CS106A, Stanford Handout #38. Strings and Chars
CS106A, Stanford Handout #38 Fall, 2004-05 Nick Parlante Strings and Chars The char type (pronounced "car") represents a single character. A char literal value can be written in the code using single quotes
Describing, manipulating and pricing financial contracts: The MLFi language
Describing, manipulating and pricing financial contracts: The MLFi language Centre for Financial Research, Judge Institute of Management Cambridge, 14 March 2003 (revised January 2005) Jean-Marc Eber LexiFi,
A Scala Tutorial for Java programmers
A Scala Tutorial for Java programmers Version 1.3 January 16, 2014 Michel Schinz, Philipp Haller PROGRAMMING METHODS LABORATORY EPFL SWITZERLAND 2 1 Introduction This document gives a quick introduction
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
Programming Fundamentals. Lesson 20 Sections
Programming Fundamentals Lesson 20 Sections Today, we will Study sections, in Haskell. Sections are another class of expressions that represent functions. A section is a binary operation where one of the
MapReduce. MapReduce and SQL Injections. CS 3200 Final Lecture. Introduction. MapReduce. Programming Model. Example
MapReduce MapReduce and SQL Injections CS 3200 Final Lecture Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI'04: Sixth Symposium on Operating System Design
Intro to Web Programming. using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000
Intro to Web Programming using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000 Intro Types in PHP Advanced String Manipulation The foreach construct $_REQUEST environmental variable Correction on
Relational Databases
Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 18 Relational data model Domain domain: predefined set of atomic values: integers, strings,... every attribute
CSc 372. Comparative Programming Languages. 21 : Haskell Accumulative Recursion. Department of Computer Science University of Arizona
1/18 CSc 372 Comparative Programming Languages 21 : Haskell Accumulative Recursion Department of Computer Science University of Arizona [email protected] Copyright c 2013 Christian Collberg 2/18 Stack
ACCA Interactive Timetable
ACCA Interactive Timetable 2016/17 Professional information last updated 1August 2016 v3.1 Please note: Information and dates in this timetable are subject to change. How the 4 exam sittings can work for
COMPUTER SCIENCE. Paper 1 (THEORY)
COMPUTER SCIENCE Paper 1 (THEORY) (Three hours) Maximum Marks: 70 (Candidates are allowed additional 15 minutes for only reading the paper. They must NOT start writing during this time) -----------------------------------------------------------------------------------------------------------------------
ACCA Interactive Timetable
ACCA Interactive Timetable 2016/17 Professional information last updated y 2016 v2.1 Please note: Information and dates in this timetable are subject to change. How the 4 exam sittings can work for you
BANK B-I-N-G-O. service charge. credit card. pen. line nickel interest cash bank. ATM dollar check signature. debit card.
pen line nickel interest cash bank ATM dollar check signature teller withdraw bank withdraw penny deposit signature dime dollar pen deposit date teller line quarter check nickel interest ATM quarter dime
Databases 2011 The Relational Model and SQL
Databases 2011 Christian S. Jensen Computer Science, Aarhus University What is a Database? Main Entry: da ta base Pronunciation: \ˈdā-tə-ˌbās, ˈda- also ˈdä-\ Function: noun Date: circa 1962 : a usually
Programming Languages CIS 443
Course Objectives Programming Languages CIS 443 0.1 Lexical analysis Syntax Semantics Functional programming Variable lifetime and scoping Parameter passing Object-oriented programming Continuations Exception
Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example
Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative
Part-time Diploma in InfoComm and Digital Media (Information Systems) Certificate in Information Systems Course Schedule & Timetable
Certificate in Information Systems Course Schedule & Timetable Module Code Module Title Start Date End Date Coursework Final Exam PTDIS010101 Management Information Tue, April 16, 2013 Tue, 2 April 2013
Lab 9. Spam, Spam, Spam. Handout 11 CSCI 134: Spring, 2015. To gain experience with Strings. Objective
Lab 9 Handout 11 CSCI 134: Spring, 2015 Spam, Spam, Spam Objective To gain experience with Strings. Before the mid-90s, Spam was a canned meat product. These days, the term spam means just one thing unwanted
agucacaaacgcu agugcuaguuua uaugcagucuua
RNA Secondary Structure Prediction: The Co-transcriptional effect on RNA folding agucacaaacgcu agugcuaguuua uaugcagucuua By Conrad Godfrey Abstract RNA secondary structure prediction is an area of bioinformatics
ACCA Interactive Timetable
ACCA Interactive Timetable 2016/17 Professional Milton Keynes information last updated 22 June 2016 Please note: Information and dates in this timetable are subject to change. How the 4 exam sittings can
Diagonalization. Ahto Buldas. Lecture 3 of Complexity Theory October 8, 2009. Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach.
Diagonalization Slides based on S.Aurora, B.Barak. Complexity Theory: A Modern Approach. Ahto Buldas [email protected] Background One basic goal in complexity theory is to separate interesting complexity
Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219
Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing
Writing Days and Months
Writing Days and Months Days of the Week There are seven days in a week. Each one starts with a capital letter. Look at the way each word is spelled. Each word ends in day. Monday Tuesday Wednesday Thursday
CENTRAL OHIO TECHNICAL COLLEGE 2015-2016 COLLEGE CALENDAR* Page 1
2015-2016 COLLEGE CALENDAR* Page 1 SUMMER SEMESTER 2015 THE DATE Mon MAY 18 CLASSES BEGIN -- FIRST TERM and SEMESTER Classes SUMMER 2015 Wed MAY 20 Last day add a FIRST TERM Class for SUMMER 2015 Thu MAY
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Chapter 15 Functional Programming Languages
Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,
Deterministic Discrete Modeling
Deterministic Discrete Modeling Formal Semantics of Firewalls in Isabelle/HOL Cornelius Diekmann, M.Sc. Dr. Heiko Niedermayer Prof. Dr.-Ing. Georg Carle Lehrstuhl für Netzarchitekturen und Netzdienste
Christianna S. Williams, University of North Carolina at Chapel Hill, Chapel Hill, NC
Christianna S. Williams, University of North Carolina at Chapel Hill, Chapel Hill, NC ABSTRACT Have you used PROC MEANS or PROC SUMMARY and wished there was something intermediate between the NWAY option
Introduction to type systems
Introduction to type systems p. 1/5 Introductory Course on Logic and Automata Theory Introduction to type systems [email protected] Based on slides by Jeff Foster, UMD Introduction to type systems
Third Grade Math Games
Third Grade Math Games Unit 1 Lesson Less than You! 1.3 Addition Top-It 1.4 Name That Number 1.6 Beat the Calculator (Addition) 1.8 Buyer & Vendor Game 1.9 Tic-Tac-Toe Addition 1.11 Unit 2 What s My Rule?
Mixed Logic A B A B. 1. Ignore all bubbles on logic gates and inverters. This means
Mixed Logic Introduction Mixed logic is a gate-level design methodology used in industry. It allows a digital logic circuit designer the functional description of the circuit from its physical implementation.
WRITING EQUATIONS USING THE 5-D PROCESS #43
WRITING EQUATIONS USING THE 5-D PROCESS #43 You have used the 5-D Process to solve problems. However, solving complicated problems with the 5-D Process can be time consuming and it may be difficult to
Exposed Database( SQL Server) Error messages Delicious food for Hackers
Exposed Database( SQL Server) Error messages Delicious food for Hackers The default.asp behavior of IIS server is to return a descriptive error message from the application. By attacking the web application
Session 6. Microsoft Project. Emanuele Della Valle. http://home.dei.polimi.it/dellavalle Lecturer: Dario Cerizza
Session 6 Microsoft Project Emanuele Della Valle http://home.dei.polimi.it/dellavalle Lecturer: Dario Cerizza Credits 2 This slides are largely based on CEFRIEL s slides for PMI Certification and Prof.
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis Linda Shapiro Today Registration should be done. Homework 1 due 11:59 pm next Wednesday, January 14 Review math essential
Desirable Properties Of An Internet Addressing Scheme
Desirable Properties Of An Internet Addressing Scheme Compact Universal Works with all network hardware Supports efficient decision making - Test whether a destination can be reached directly - Decide
A Propositional Dynamic Logic for CCS Programs
A Propositional Dynamic Logic for CCS Programs Mario R. F. Benevides and L. Menasché Schechter {mario,luis}@cos.ufrj.br Abstract This work presents a Propositional Dynamic Logic in which the programs are
Analyse et Conception Formelle. Lesson 5. Crash Course on Scala
Analyse et Conception Formelle Lesson 5 Crash Course on Scala T. Genet (ISTIC/IRISA) ACF-5 1 / 36 Bibliography Simply Scala. Online tutorial: http://www.simply.com/fr http://www.simply.com/ Programming
Point Biserial Correlation Tests
Chapter 807 Point Biserial Correlation Tests Introduction The point biserial correlation coefficient (ρ in this chapter) is the product-moment correlation calculated between a continuous random variable
Factoring Algebra- Chapter 8B Assignment Sheet
Name: Factoring Algebra- Chapter 8B Assignment Sheet Date Section Learning Targets Assignment Tues 2/17 Find the prime factorization of an integer Find the greatest common factor (GCF) for a set of monomials.
AP Computer Science Static Methods, Strings, User Input
AP Computer Science Static Methods, Strings, User Input Static Methods The Math class contains a special type of methods, called static methods. A static method DOES NOT operate on an object. This is because
American Red Cross Lifeguarding Courses Minnesota Territory
American Red Cross Courses Minnesota Territory The American Red Cross courses listed in this document are sponsored by aquatics facilities that are authorized providers of American Red Cross training.
Introducing Formal Methods. Software Engineering and Formal Methods
Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended
UNIVERSITY OF LONDON (University College London) M.Sc. DEGREE 1998 COMPUTER SCIENCE D16: FUNCTIONAL PROGRAMMING. Answer THREE Questions.
UNIVERSITY OF LONDON (University College London) M.Sc. DEGREE 1998 COMPUTER SCIENCE D16: FUNCTIONAL PROGRAMMING Answer THREE Questions. The Use of Electronic Calculators: is NOT Permitted. -1- Answer Question
Friendship and Encapsulation in C++
Friendship and Encapsulation in C++ Adrian P Robson Department of Computing University of Northumbria at Newcastle 23rd October 1995 Abstract There is much confusion and debate about friendship and encapsulation
2-Step Credit Spreads
2-Step Credit Spreads (with Weeklys SM Options) Jim Bittman Senior Instructor The Options Institute at CBOE Disclosures Options involve risks and are not suitable for all investors. Prior to buying or
Class 32: The Java Collections Framework
Introduction to Computation and Problem Solving Class 32: The Java Collections Framework Prof. Steven R. Lerman and Dr. V. Judson Harward Goals To introduce you to the data structure classes that come
Normal Form vs. Non-First Normal Form
Normal Form vs. Non-First Normal Form Kristian Torp Department of Computer Science Aalborg Univeristy www.cs.aau.dk/ torp [email protected] September 1, 2009 daisy.aau.dk Kristian Torp (Aalborg University)
Automata and Formal Languages
Automata and Formal Languages Winter 2009-2010 Yacov Hel-Or 1 What this course is all about This course is about mathematical models of computation We ll study different machine models (finite automata,
Unit 3 Banking: Opening an Account
Unit 3 Banking: Opening an Account Vocabulary a bank (banks) a bank teller (bank tellers) a window (windows) an ATM (ATMs) More Vocabulary: a line, (lines) waiting in line a deposit, (deposits) making
Resco Mobile CRM Woodford (Rules Guide) Document version 6.2.0.0
Resco Mobile CRM Woodford (Rules Guide) Document version 6.2.0.0 Resco.net 1 Form Rules... 2 2 Steps... 2 2.1 Function Step... 2 2.1.1 Selecting Variable, Use of the Property Selector... 3 2.1.2 Function
x10* CP290 HOME CONTROL INTERFACE PROGRAMMING GUIDE FOR ADVANCED PROGRAMMERS
x10* CP290 HOME CONTROL INTERFACE PROGRAMMING GUIDE FOR ADVANCED PROGRAMMERS 1 TABLE OF CONTENTS 3. Introduction. 6. Programming. 7. RS-232 connections. a. Byte format. 9. Download Base Housecode. IO.
How To Create A Table In Sql 2.5.2.2 (Ahem)
Database Systems Unit 5 Database Implementation: SQL Data Definition Language Learning Goals In this unit you will learn how to transfer a logical data model into a physical database, how to extend or
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
Relational Database: Additional Operations on Relations; SQL
Relational Database: Additional Operations on Relations; SQL Greg Plaxton Theory in Programming Practice, Fall 2005 Department of Computer Science University of Texas at Austin Overview The course packet
Project Management Plan Outline ITSC
Project Management Plan Outline ITSC Date: 02/28/2012 Introduction At start of each project vendors must create a project management plan for ITSC approval, including, at a minimum, the sections described
SDHNS 3 Hour English Food Handlers Class
Mon Oct 3, 2011 English Class - San Diego (Downtown) Where: Nicky Rottens Bar and Burger Joint, 560 Fifth Ave., San Diego, CA 92101 Wed Oct 5, 2011 Fri Oct 7, 2011 12pm - 3pm Sat Oct 8, 2011 (No title)
The Smalltalk Programming Language. Beatrice Åkerblom [email protected]
The Smalltalk Programming Language Beatrice Åkerblom [email protected] 'The best way to predict the future is to invent it' - Alan Kay. History of Smalltalk Influenced by Lisp and Simula Object-oriented
Glassfish, JAVA EE, Servlets, JSP, EJB
Glassfish, JAVA EE, Servlets, JSP, EJB Java platform A Java platform comprises the JVM together with supporting class libraries. Java 2 Standard Edition (J2SE) (1999) provides core libraries for data structures,
Problem 1. CS 61b Summer 2005 Homework #2 Due July 5th at the beginning of class
CS 61b Summer 2005 Homework #2 Due July 5th at the beginning of class This homework is to be done individually. You may, of course, ask your fellow classmates for help if you have trouble editing files,
1st Grade Math Standard I Rubric. Number Sense. Score 4 Students show proficiency with numbers beyond 100.
1st Grade Math Standard I Rubric Number Sense Students show proficiency with numbers beyond 100. Students will demonstrate an understanding of number sense by: --counting, reading, and writing whole numbers
