Notebooks such as Jupyter give programming languages a level of interactivity approaching that of spreadsheets.
I present here an idea for a programming language specifically designed for an interactive environment similar to a notebook.
It aims to combining the power of a programming language with the usability of a spreadsheet.
Instead of free-form code, the user creates fields / columns, but these can be combined into tables and object classes.
By decoratively cycling through field elements, loops and other programming constructs can be created.
I give examples from classical computer science, machine learning and mathematical finance, specifically:
Nth Prime Number, 8 Queens, Poker Hand, Travelling Salesman, Linear Regression, VaR Attribution
Introduction
Plotting basic 2-D plots.
The plot command
The fplot command
Plotting multiple graphs in the same plot
Formatting plots
USING THE plot() COMMAND TO PLOT
MULTIPLE GRAPHS IN THE SAME PLOT
MATLAB PROGRAM TO PLOT VI CHARACTERISTICS OF A DIODE
SUMMARY
Introduction
Plotting basic 2-D plots.
The plot command
The fplot command
Plotting multiple graphs in the same plot
Formatting plots
USING THE plot() COMMAND TO PLOT
MULTIPLE GRAPHS IN THE SAME PLOT
MATLAB PROGRAM TO PLOT VI CHARACTERISTICS OF A DIODE
SUMMARY
Principal Components Analysis, Calculation and VisualizationMarjan Sterjev
The article explains dimension reduction principles, PCA algorithm and mathematics behind. The PCA calculation and data projection is demonstrated in R, Python and Apache Spark. Finally the results are visualized with D3.js.
A tour of Python: slides from presentation given in 2012.
[Some slides are not properly rendered in SlideShare: the original is still available at http://www.aleksa.org/2015/04/python-presentation_7.html.]
A short introduction to monad which doesn't involve math.
Code samples are written in C# language for demonstration purpose.
The monad concept is generic in any programming language.
References:
https://weblogs.asp.net/dixin/Tags/Category%20Theory
https://davesquared.net/categories/functional-programming/
https://fsharpforfunandprofit.com/posts/elevated-world/
https://www.ahnfelt.net/monads-forget-about-bind/
https://mikhail.io/tags/functional-programming/
http://adit.io/posts/2013-06-10-three-useful-monads.html
http://learnyouahaskell.com/a-fistful-of-monads
https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
https://fsharpforfunandprofit.com/posts/elevated-world/#series-toc
https://kubuszok.com/2018/different-ways-to-understand-a-monad/
https://mikehadlow.blogspot.com/2011/01/monads-in-c1-introduction.html
White-Box Testing on Java methods using Decision-to-Decision Graph (DD Graph), and Cyclomatic Complexity; and finding Data Flow Graph, and All-DU-Paths.
Documented in 3rd year of Bachelor of Science in Software Engineering (BSSE) course at Institute of Information Technology, University of Dhaka (IIT, DU).
Principal Components Analysis, Calculation and VisualizationMarjan Sterjev
The article explains dimension reduction principles, PCA algorithm and mathematics behind. The PCA calculation and data projection is demonstrated in R, Python and Apache Spark. Finally the results are visualized with D3.js.
A tour of Python: slides from presentation given in 2012.
[Some slides are not properly rendered in SlideShare: the original is still available at http://www.aleksa.org/2015/04/python-presentation_7.html.]
A short introduction to monad which doesn't involve math.
Code samples are written in C# language for demonstration purpose.
The monad concept is generic in any programming language.
References:
https://weblogs.asp.net/dixin/Tags/Category%20Theory
https://davesquared.net/categories/functional-programming/
https://fsharpforfunandprofit.com/posts/elevated-world/
https://www.ahnfelt.net/monads-forget-about-bind/
https://mikhail.io/tags/functional-programming/
http://adit.io/posts/2013-06-10-three-useful-monads.html
http://learnyouahaskell.com/a-fistful-of-monads
https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
https://fsharpforfunandprofit.com/posts/elevated-world/#series-toc
https://kubuszok.com/2018/different-ways-to-understand-a-monad/
https://mikehadlow.blogspot.com/2011/01/monads-in-c1-introduction.html
White-Box Testing on Java methods using Decision-to-Decision Graph (DD Graph), and Cyclomatic Complexity; and finding Data Flow Graph, and All-DU-Paths.
Documented in 3rd year of Bachelor of Science in Software Engineering (BSSE) course at Institute of Information Technology, University of Dhaka (IIT, DU).
MATLAB DOCUMENTATION ON SOME OF THE MODULES
A.Generate videos in which a skeleton of a person doing the following Gestures.
1.Tilting his head to right and left
2.Tilting his hand to right and left
3.Walking
in matlab.
B. Write a MATLAB program that converts a decimal number to Roman number and vice versa.
C.Using EZ plot & anonymous functions plot the following:
· Y=Sqrt(X)
· Y= X^2
· Y=e^(-XY)
D.Take your picture and
· Show R, G, B channels along with RGB Image in same figure using sub figure.
· Convert into HSV( Hue, saturation and value) and show the H,S,V channels along with HSV image
E.Record your name pronounced by yourself. Try to display the signal(name) in a plot vs Time, using matlab.
F.Write a script to open a new figure and plot five circles, all centered at the origin and with increasing radii. Set the line width for each circle to something thick (at least 2 points), and use the colors from a 5-color jet colormap (jet).
G. NEWTON RAPHSON AND SECANT METHOD
H.Write any one of the program to do following things using file concept.
1.Create or Open a file
2. Read data from the file and write data to another file
3. Append some text to already existed file
4. Close the file
I.Write a function to perform following set operations
1.Union of A and B
2. Intersection of A and B
3. Complement of A and B
(Assume A= {1, 2, 3, 4, 5, 6}, B= {2, 4, 6})
Para un mismo problema existe más de una solución aunque a veces existen barreras tecnicas que nos impiden abordarlas. Esta presentación pretende mostrar como, gracias a Kotlin, se nos abren otras opciones a la hora de abordar los problemas, centrandonos en nuestros problemas particulares y delegando a un segundo plano problemas recurrentes como la gestión de errores o la concurrencia.
The name MATLAB stands for MATrix LABoratory.MATLAB is a high-performance language for technical computing.
It integrates computation, visualization, and programming environment. Furthermore, MATLAB is a modern programming language environment: it has sophisticated data structures, contains built-in editing and debugging tools, and supports object-oriented programming.
These factor make MATLAB an excellent tool for teaching and research.
Very quick introduction to the language R. It talks about basic data structures, data manipulation steps, plots, control structures etc. Enough material to get you started in R.
Similar to Idea for ineractive programming language (20)
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
1. Idea for Interactive Programming Language
Lincoln Hannah - July 2018
Notebooks such as Jupyter give programming languages a level of interactivity approaching that of spreadsheets.
I present here an idea for a programming language specifically designed for an interactive environment similar to a notebook.
It aims to combining the power of a programming language with the usability of a spreadsheet.
Instead of free-form code, the user creates fields / columns, but these can be combined into tables and object classes.
By declaratively cycling through field elements, loops and other programing constructs can be created.
I give examples from classical computer science, machine learning and mathematical finance, specifically:
Nth Prime Number, 8 Queens, Poker Hand, Travelling Salesman, Linear Regression, VaR Attribution
Input
Output
Name Formula Comments
X 5:9:2 5 7 9 Array 5 to 9 by 2
Xby2 2*X 10 14 18 increment by 1 if increment omitted
Y 4: { Y^2 < 30 } 4 5 {} indicates a do while condition
like a do while loop
Z 1:1000 1 2 3 4 5 996 997 998 999 1000
MyCol Data ABC Hello 123
Function Fn( Arg1, Arg2 ) Arg1 + 2 * Arg2 In-line function definition
Function fibonacci( n=10 ) MultiLine
1:n 1 2 3 4 5 11 12 13 14 15
fib fib.prev + fib.prev(2) 1 1 2 3 5 89 144 233 377 610
Return fib.last 610
fibonacci( 4:7 ) 3 5 8 13
My_Dict Dictionary
key 4:6 4 5 6
value Data four five six
X 5 7 9 5 7 7 9 5 7 9 Fields in adjacent rows (X and Y)
Y 4 4 4 5 5 4 4 5 5 5 whithout a specified join, does a cross-join.
Xby2 10 14 18 10 14 14 18 10 14 18 produces every combination of X and Y so
My_Dict( Y ) four four four five five four four five five five Can be used like nested loops
MyCol ABC ABC ABC ABC ABC 123 123 123 123 123
XbyY X*Y 20 28 36 25 35 28 36 25 35 45
Fn( X, Y ) 13 15 17 15 17 15 17 15 17 19
Multiple blank lines indicates end of
multi-line function
Values - First 5 Values - Last 5
Data keyword allows vaulues to be
entered directly
Default argument values (n=10)
allow example function output to be
shown within function definition.
Useful for debugging.
2. Outer_Join( X, Y ) 4 5 7 9
X 5 7 9
Y 4 5
Concat( X, Y ) 5 7 9 4 5
X_filled Str(X) 5 7 9 Manual1 haha
Y 4 2
CountX count( X ) 3
MaxX max( X ) 9
X 5 7 9
SumY sum( Y ) 9 9 9
SumXbyY sum( XbyY ) 45 76 81
FirstMatch( X ) <= 6 <=8 CatchAll
X_bucket_1st up_to_6 up_to_8 Some_Other
X 5 7 9
Y_bucket_1st up_to_6 up_to_8 Some_Other
AllMatch( X ) <= 8 <=10
X_bucket_All up_to_8 up_to_10
X 5 7 5 7 9
X_bucket_All up_to_8 up_to_8 up_to_10up_to_10up_to_10
AllMatch( X ) <= 8 <= 8 >8
Above.AND.AllMatch( Y ) ==4 ==5 CatchAll
lable A B C
X 5 7 5 7 9 9
Y 4 4 4 4 4 5
lable A A B B C C
I New MyClass( Arg1=1 ) 1
I.Arg2 1
I.Const 1.2
I.Out1 8.2
Id Generated automatically. Arg2 not
speified so gets default value from
class definition.
3. W New MyClass( Arg1=X, Arg2=Y) 1 2 3 2 4 12 18 7 14 21
X 1 2 3 1 2 2 3 1 2 3
Y 1 1 1 2 2 6 6 7 7 7
W.Out1 6.2 8.2 10.2 9.2 11.2 23.2 25.2 24.2 26.2 28.2
W.Out2 0.2 1.4 2.6 -0.8 0.4 -3.6 -2.4 -5.8 -4.6 -3.4
M1 New Matrix( nRows=3, nCols=2 ) 1
M2 New Matrix( nRows=1, nCols=2 ) 1 Alternate notatation
M1.Row 1 2 1 2 1 2
M1.Col 1 1 2 2 3 3
M1.Value Data 10 11 12 13 14 15
M2.Col 1 1
M2.Row 1 2
M2.Value Data 3 3
M3 M1.Product( M2 )
M3.Row 1 2 3
M3.Col 1 1 1
M3.Value 63 75 87
Class MyClass
ID ID-Generator 1
Arg1 Decimal 1
Arg2 Decimal 1
Const Static Decimal 1.2
Out1 Const + 2 * Arg1 + 3 * Arg2 6.2
Out2 Const * Arg1 - Arg2 0.2
Data keyword allows values to be
entered in data area
Static Data indicates cannot be
overridden when instantiated. Data
without Static are default values
only. Fields will be input (white)
Every class has an id. (like the
primary Key of a table) ID shown if
no field selected, as per Z and W
above.
Arguments set to columns / vectors
so a column of Ojbects created with
generated IDs - 1 to 21.
4. NameSpace MathLibrary
Class Matrix
ID ID-Generator 1
nRows Data 2
nCols Data 2
Row 1 : nRows 1 2
Col 1 : nCols 1 2
Row 1 2 1 2
Col 1 1 2 2
Value Data 0 0 0 0
Row==Col 1 2
Trace Value 0 0
Add Method returns Matrix
M2 Argument Matrix 1
Return New Matrix( nRows= This.nRows, nCols= This.nCols) 1
Error_If nRows != M2.nRows Error( "number of Rows must match to add Matricies" )
Error_If nCols != M2.nCols Error( "number of Columns must match to add Matricies" )
Row == M2.Row == Return.Row
Col == M2.Col ==Return.Col
Return.Value Value + M2.Value
Transpose Method returns Matrix
Return New Matrix( nRows = This.nCols, nCols=This.nRows) 1
Return.Row == This.Col
Return.Col == This.Row
Return.Value This.Value
Product Method returns Matrix
Right Argument Matrix
Return New Matrix( nRows= This.nRows, nCols= Right.nCols)
Error_If nCols != Right.nRows Error( "number of Columns of left matrix must match number of Rows of Right matrix." )
This.Col == Right.Row
Return.Value sum( This.Value * Right.Value )
Fields created within method only
visible within method (Privative
Errors produced if user tries to add
matricies of unmatched dimensions
Left, Right, Add automatically joined
on Row and Column Due to matching
Default values set in class definition
can be overwritten.
5. Class Primes
Is_Prime Method returns Boolean
x Argument Integer 32
i 2 : { i > sqrt( x ) } 1 2 3 4 5
Mod_x x mod i == 0 TRUE TRUE FALSE TRUE FALSE
x 1 >1
Return TRUE OR( Mod_x )
Nth_Prime Method returns Integer
n Argument Integer 5
i 1: {Count_Primes == n} 1 2 3 4 5 6 7
Count_Primes Is_Prime( i ) + Count_Primes.prev(First=0) 1 2 3 3 4 4 5
Return Last( i ) 7
NameSpace Poker
Class Card
ID ID-Generator 1
Suit Possible_Values Data 4 Hearts Diamonds Clubs Spades
Number Possible_Values Data 13 Two Three Four Five Six Ten Jack Queen King Ace
Class Hand
ID ID-Generator 1
C New( 5 ) Card 1 2 3 4 5
C.Suit Data Hearts Diamonds Clubs Spades Spades
C.Number Data Five Five Five Five Six
Four_of_a_Kind count( distict( C.Suit ) ) >= 4 TRUE
Three_of_a_Kind count( distict( C.Suit ) ) >= 3 TRUE
Pair count( distict( C.Suit ) ) >= 2 TRUE
Full_House Count( Distict( C.Suit ) ) >= 2 TRUE
Non static Data - set defaults to test
formulas