Add missing samples for msdax, postiats and sol
parent
6ce435ec23
commit
f37e26bee5
|
@ -23,8 +23,8 @@
|
|||
"http-server": "^0.9.0",
|
||||
"monaco-css": "1.3.2",
|
||||
"monaco-editor-core": "0.9.0",
|
||||
"monaco-html": "1.3.0",
|
||||
"monaco-json": "1.3.0",
|
||||
"monaco-html": "1.3.1",
|
||||
"monaco-json": "1.3.1",
|
||||
"monaco-languages": "0.8.0",
|
||||
"monaco-typescript": "2.2.0",
|
||||
"rimraf": "^2.5.2",
|
||||
|
|
|
@ -42,13 +42,11 @@ var editor = monaco.editor.create(document.getElementById("container"), {
|
|||
value: jsCode,
|
||||
language: "javascript",
|
||||
|
||||
// If `wrappingColumn` is -1, then no wrapping occurs and
|
||||
// long lines are rendered on one line. However, this might
|
||||
// mean that not all code is rendered (... may be used).
|
||||
// If `wrappingColumn` is 0, then viewport width wrapping is set
|
||||
// If `wrappingColumn` is > 0, then the lines will wrap at its value
|
||||
// Defaults to 300
|
||||
wrappingColumn: 40,
|
||||
wordWrap: 'wordWrapColumn',
|
||||
wordWrapColumn: 40,
|
||||
|
||||
// Set this to false to not auto word wrap minified files
|
||||
wordWrapMinified: true,
|
||||
|
||||
// try "same", "indent" or "none"
|
||||
wrappingIndent: "indent"
|
||||
|
|
|
@ -10,38 +10,6 @@
|
|||
<style>
|
||||
/*----------------------------------------SAMPLE CSS START*/
|
||||
|
||||
.monaco-editor, .monaco-editor-background {
|
||||
background: #EDF9FA;
|
||||
}
|
||||
|
||||
/* Cursor */
|
||||
.monaco-editor .cursor {
|
||||
background: darkred !important;
|
||||
}
|
||||
|
||||
/* Current line */
|
||||
.monaco-editor .current-line {
|
||||
background: rgba(0, 0, 255, 0.1);
|
||||
}
|
||||
|
||||
/* Line Numbers */
|
||||
.monaco-editor .line-numbers {
|
||||
background-color: #EDF9FA;
|
||||
color: green;
|
||||
}
|
||||
|
||||
/* Line Decorations */
|
||||
.monaco-editor .lines-decorations {
|
||||
background-color: #EDF9FA;
|
||||
}
|
||||
|
||||
/* Selection */
|
||||
.monaco-editor .view-overlays.focused .selected-text {
|
||||
background: rgba(128, 0, 0, 0.2) !important;
|
||||
}
|
||||
.monaco-editor .view-overlays .selected-text {
|
||||
background: rgba(128, 0, 0, 0.1) !important;
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------SAMPLE CSS END*/
|
||||
|
@ -68,7 +36,24 @@ THIS IS A GENERATED FILE VIA gulp generate-test-samples
|
|||
loadEditor(function() {
|
||||
/*----------------------------------------SAMPLE JS START*/
|
||||
|
||||
// The editor exposes a set of CSS classes that can be overwritten.
|
||||
// The editor colors can be customized through CSS or through JS
|
||||
|
||||
monaco.editor.defineTheme('myTheme', {
|
||||
base: 'vs',
|
||||
inherit: true,
|
||||
rules: [{ background: 'EDF9FA' }],
|
||||
colors: {
|
||||
'editor.foreground': '#000000',
|
||||
'editor.background': '#EDF9FA',
|
||||
'editorCursor.foreground': '#8B0000',
|
||||
'editor.lineHighlightBackground': '#0000FF20',
|
||||
'editorLineNumber.foreground': '#008800',
|
||||
'editor.selectionBackground': '#88000030',
|
||||
'editor.inactiveSelectionBackground': '#88000015'
|
||||
}
|
||||
});
|
||||
monaco.editor.setTheme('myTheme');
|
||||
|
||||
monaco.editor.create(document.getElementById("container"), {
|
||||
value: "My to-do list:\n* buy milk\n* buy coffee\n* write awesome code",
|
||||
language: "text/plain",
|
||||
|
@ -76,6 +61,135 @@ monaco.editor.create(document.getElementById("container"), {
|
|||
fontSize: 20
|
||||
});
|
||||
|
||||
// A list of color names:
|
||||
'foreground' // Overall foreground color. This color is only used if not overridden by a component.
|
||||
'errorForeground' // Overall foreground color for error messages. This color is only used if not overridden by a component.
|
||||
'descriptionForeground' // Foreground color for description text providing additional information, for example for a label.
|
||||
'focusBorder' // Overall border color for focused elements. This color is only used if not overridden by a component.
|
||||
'contrastBorder' // An extra border around elements to separate them from others for greater contrast.
|
||||
'contrastActiveBorder' // An extra border around active elements to separate them from others for greater contrast.
|
||||
'selection.background' // The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.
|
||||
'textSeparator.foreground' // Color for text separators.
|
||||
'textLink.foreground' // Foreground color for links in text.
|
||||
'textLink.activeForeground' // Foreground color for active links in text.
|
||||
'textPreformat.foreground' // Foreground color for preformatted text segments.
|
||||
'textBlockQuote.background' // Background color for block quotes in text.
|
||||
'textBlockQuote.border' // Border color for block quotes in text.
|
||||
'textCodeBlock.background' // Background color for code blocks in text.
|
||||
'widget.shadow' // Shadow color of widgets such as find/replace inside the editor.
|
||||
'input.background' // Input box background.
|
||||
'input.foreground' // Input box foreground.
|
||||
'input.border' // Input box border.
|
||||
'inputOption.activeBorder' // Border color of activated options in input fields.
|
||||
'input.placeholderForeground' // Input box foreground color for placeholder text.
|
||||
'inputValidation.infoBackground' // Input validation background color for information severity.
|
||||
'inputValidation.infoBorder' // Input validation border color for information severity.
|
||||
'inputValidation.warningBackground' // Input validation background color for information warning.
|
||||
'inputValidation.warningBorder' // Input validation border color for warning severity.
|
||||
'inputValidation.errorBackground' // Input validation background color for error severity.
|
||||
'inputValidation.errorBorder' // Input validation border color for error severity.
|
||||
'dropdown.background' // Dropdown background.
|
||||
'dropdown.foreground' // Dropdown foreground.
|
||||
'dropdown.border' // Dropdown border.
|
||||
'list.focusBackground' // List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.
|
||||
'list.focusForeground' // List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.
|
||||
'list.activeSelectionBackground' // List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.
|
||||
'list.activeSelectionForeground' // List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.
|
||||
'list.inactiveSelectionBackground' // List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.
|
||||
'list.inactiveSelectionForeground' // List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.
|
||||
'list.hoverBackground' // List/Tree background when hovering over items using the mouse.
|
||||
'list.hoverForeground' // List/Tree foreground when hovering over items using the mouse.
|
||||
'list.dropBackground' // List/Tree drag and drop background when moving items around using the mouse.
|
||||
'list.highlightForeground' // List/Tree foreground color of the match highlights when searching inside the list/tree.
|
||||
'pickerGroup.foreground' // Quick picker color for grouping labels.
|
||||
'pickerGroup.border' // Quick picker color for grouping borders.
|
||||
'button.foreground' // Button foreground color.
|
||||
'button.background' // Button background color.
|
||||
'button.hoverBackground' // Button background color when hovering.
|
||||
'badge.background' // Badge background color. Badges are small information labels, e.g. for search results count.
|
||||
'badge.foreground' // Badge foreground color. Badges are small information labels, e.g. for search results count.
|
||||
'scrollbar.shadow' // Scrollbar shadow to indicate that the view is scrolled.
|
||||
'scrollbarSlider.background' // Slider background color.
|
||||
'scrollbarSlider.hoverBackground' // Slider background color when hovering.
|
||||
'scrollbarSlider.activeBackground' // Slider background color when active.
|
||||
'progressBar.background' // Background color of the progress bar that can show for long running operations.
|
||||
'editor.background' // Editor background color.
|
||||
'editor.foreground' // Editor default foreground color.
|
||||
'editorWidget.background' // Background color of editor widgets, such as find/replace.
|
||||
'editorWidget.border' // Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.
|
||||
'editor.selectionBackground' // Color of the editor selection.
|
||||
'editor.selectionForeground' // Color of the selected text for high contrast.
|
||||
'editor.inactiveSelectionBackground' // Color of the selection in an inactive editor.
|
||||
'editor.selectionHighlightBackground' // Color for regions with the same content as the selection.
|
||||
'editor.findMatchBackground' // Color of the current search match.
|
||||
'editor.findMatchHighlightBackground' // Color of the other search matches.
|
||||
'editor.findRangeHighlightBackground' // Color the range limiting the search.
|
||||
'editor.hoverHighlightBackground' // Highlight below the word for which a hover is shown.
|
||||
'editorHoverWidget.background' // Background color of the editor hover.
|
||||
'editorHoverWidget.border' // Border color of the editor hover.
|
||||
'editorLink.activeForeground' // Color of active links.
|
||||
'diffEditor.insertedTextBackground' // Background color for text that got inserted.
|
||||
'diffEditor.removedTextBackground' // Background color for text that got removed.
|
||||
'diffEditor.insertedTextBorder' // Outline color for the text that got inserted.
|
||||
'diffEditor.removedTextBorder' // Outline color for text that got removed.
|
||||
'merge.currentHeaderBackground' // Current header background in inline merge-conflicts.
|
||||
'merge.currentContentBackground' // Current content background in inline merge-conflicts.
|
||||
'merge.incomingHeaderBackground' // Incoming header background in inline merge-conflicts.
|
||||
'merge.incomingContentBackground' // Incoming content background in inline merge-conflicts.
|
||||
'merge.commonHeaderBackground' // Common ancestor header background in inline merge-conflicts.
|
||||
'merge.commonContentBackground' // Common ancester content background in inline merge-conflicts.
|
||||
'merge.border' // Border color on headers and the splitter in inline merge-conflicts.
|
||||
'editorOverviewRuler.currentContentForeground' // Current overview ruler foreground for inline merge-conflicts.
|
||||
'editorOverviewRuler.incomingContentForeground' // Incoming overview ruler foreground for inline merge-conflicts.
|
||||
'editorOverviewRuler.commonContentForeground' // Common ancestor overview ruler foreground for inline merge-conflicts.
|
||||
'editor.lineHighlightBackground' // Background color for the highlight of line at the cursor position.
|
||||
'editor.lineHighlightBorder' // Background color for the border around the line at the cursor position.
|
||||
'editor.rangeHighlightBackground' // Background color of highlighted ranges, like by quick open and find features.
|
||||
'editorCursor.foreground' // Color of the editor cursor.
|
||||
'editorWhitespace.foreground' // Color of whitespace characters in the editor.
|
||||
'editorIndentGuide.background' // Color of the editor indentation guides.
|
||||
'editorLineNumber.foreground' // Color of editor line numbers.
|
||||
'editorRuler.foreground' // Color of the editor rulers.
|
||||
'editorCodeLens.foreground' // Foreground color of editor code lenses
|
||||
'editorBracketMatch.background' // Background color behind matching brackets
|
||||
'editorBracketMatch.border' // Color for matching brackets boxes
|
||||
'editorOverviewRuler.border' // Color of the overview ruler border.
|
||||
'editorGutter.background' // Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.
|
||||
'editorError.foreground' // Foreground color of error squigglies in the editor.
|
||||
'editorError.border' // Border color of error squigglies in the editor.
|
||||
'editorWarning.foreground' // Foreground color of warning squigglies in the editor.
|
||||
'editorWarning.border' // Border color of warning squigglies in the editor.
|
||||
'editorMarkerNavigationError.background' // Editor marker navigation widget error color.
|
||||
'editorMarkerNavigationWarning.background' // Editor marker navigation widget warning color.
|
||||
'editorMarkerNavigation.background' // Editor marker navigation widget background.
|
||||
'editorSuggestWidget.background' // Background color of the suggest widget.
|
||||
'editorSuggestWidget.border' // Border color of the suggest widget.
|
||||
'editorSuggestWidget.foreground' // Foreground color of the suggest widget.
|
||||
'editorSuggestWidget.selectedBackground' // Background color of the selected entry in the suggest widget.
|
||||
'editorSuggestWidget.highlightForeground' // Color of the match highlights in the suggest widget.
|
||||
'editor.wordHighlightBackground' // Background color of a symbol during read-access, like reading a variable.
|
||||
'editor.wordHighlightStrongBackground' // Background color of a symbol during write-access, like writing to a variable.
|
||||
'peekViewTitle.background' // Background color of the peek view title area.
|
||||
'peekViewTitleLabel.foreground' // Color of the peek view title.
|
||||
'peekViewTitleDescription.foreground' // Color of the peek view title info.
|
||||
'peekView.border' // Color of the peek view borders and arrow.
|
||||
'peekViewResult.background' // Background color of the peek view result list.
|
||||
'peekViewResult.lineForeground' // Foreground color for line nodes in the peek view result list.
|
||||
'peekViewResult.fileForeground' // Foreground color for file nodes in the peek view result list.
|
||||
'peekViewResult.selectionBackground' // Background color of the selected entry in the peek view result list.
|
||||
'peekViewResult.selectionForeground' // Foreground color of the selected entry in the peek view result list.
|
||||
'peekViewEditor.background' // Background color of the peek view editor.
|
||||
'peekViewEditorGutter.background' // Background color of the gutter in the peek view editor.
|
||||
'peekViewResult.matchHighlightBackground' // Match highlight color in the peek view result list.
|
||||
'peekViewEditor.matchHighlightBackground' // Match highlight color in the peek view editor.
|
||||
|
||||
/*
|
||||
var colors = require('vs/platform/registry/common/platform').Registry.data['base.contributions.colors'].colorSchema.properties
|
||||
Object.keys(colors).forEach(function(key) {
|
||||
var val = colors[key];
|
||||
console.log( '//' + val.description + '\n' + key);
|
||||
})
|
||||
*/
|
||||
|
||||
/*----------------------------------------SAMPLE CSS END*/
|
||||
});
|
||||
|
|
|
@ -19,7 +19,7 @@ THIS IS A GENERATED FILE VIA gulp generate-test-samples<br/><br/>
|
|||
<a class="loading-opts" href="playground.generated/interacting-with-the-editor-customizing-the-line-numbers.html">Interacting with the editor > Customizing the line numbers</a><br/>
|
||||
<a class="loading-opts" href="playground.generated/interacting-with-the-editor-listening-to-mouse-events.html">Interacting with the editor > Listening to mouse events</a><br/>
|
||||
<a class="loading-opts" href="playground.generated/interacting-with-the-editor-listening-to-key-events.html">Interacting with the editor > Listening to key events</a><br/>
|
||||
<a class="loading-opts" href="playground.generated/customizing-the-appearence-exposed-colors.html">Customizing the appearence > Exposed CSS classes</a><br/>
|
||||
<a class="loading-opts" href="playground.generated/customizing-the-appearence-exposed-colors.html">Customizing the appearence > Exposed colors</a><br/>
|
||||
<a class="loading-opts" href="playground.generated/customizing-the-appearence-scrollbars.html">Customizing the appearence > Scrollbars</a><br/>
|
||||
<a class="loading-opts" href="playground.generated/customizing-the-appearence-tokens-and-colors.html">Customizing the appearence > Tokens and colors</a><br/>
|
||||
<a class="loading-opts" href="playground.generated/creating-the-diffeditor-hello-diff-world.html">Creating the DiffEditor > Hello diff world!</a><br/>
|
||||
|
|
|
@ -51,9 +51,6 @@ var editor = monaco.editor.create(document.getElementById("container"), {
|
|||
});
|
||||
|
||||
// Explanation:
|
||||
// Try right clicking on an identifier or keyword => the action will be enabled (due to `tokensAtPosition`)
|
||||
// Try right clicking on a string => the action will be disabled (due to `tokensAtPosition`)
|
||||
// Try right clicking on whitespace => the action will be disabled (due to `wordAtPosition`)
|
||||
// Press F1 (Alt-F1 in IE) => the action will appear and run if it is enabled
|
||||
// Press Ctrl-F10 => the action will run if it is enabled
|
||||
|
||||
|
@ -67,6 +64,10 @@ editor.addAction({
|
|||
// An optional array of keybindings for the action.
|
||||
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.F10],
|
||||
|
||||
// A precondition for this action.
|
||||
precondition: null,
|
||||
|
||||
// A rule to evaluate on top of the precondition in order to dispatch the keybindings.
|
||||
keybindingContext: null,
|
||||
|
||||
contextMenuGroupId: 'navigation',
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
= CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))
|
|
@ -0,0 +1,64 @@
|
|||
// http://www.ats-lang.org/
|
||||
(* Say Hello! once *)
|
||||
val () = print"Hello!\n"
|
||||
//
|
||||
(* Say Hello! 3 times *)
|
||||
val () = 3*delay(print"Hello!")
|
||||
val () = print_newline((*void*))
|
||||
//
|
||||
|
||||
//
|
||||
(* Build a list of 3 *)
|
||||
val xs = $list{int}(0, 1, 2)
|
||||
//
|
||||
val x0 = xs[0] // legal
|
||||
val x1 = xs[1] // legal
|
||||
val x2 = xs[2] // legal
|
||||
val x3 = xs[3] // illegal
|
||||
//
|
||||
|
||||
//
|
||||
extern
|
||||
fun{} f0 (): int
|
||||
extern
|
||||
fun{} f1 (int): int
|
||||
extern
|
||||
fun{} repeat_f0f1 (int): int
|
||||
//
|
||||
implement
|
||||
{}(*tmp*)
|
||||
repeat_f0f1(n) =
|
||||
if n = 0
|
||||
then f0()
|
||||
else f1(repeat_f0f1(n-1))
|
||||
// end of [if]
|
||||
//
|
||||
fun
|
||||
times (
|
||||
m:int, n:int
|
||||
) : int = // m*n
|
||||
repeat_f0f1 (m) where
|
||||
{
|
||||
implement f0<> () = 0
|
||||
implement f1<> (x) = x + n
|
||||
}
|
||||
//
|
||||
fun
|
||||
power (
|
||||
m:int, n:int
|
||||
) : int = // m^n
|
||||
repeat_f0f1 (n) where
|
||||
{
|
||||
implement f0<> () = 1
|
||||
implement f1<> (x) = m * x
|
||||
}
|
||||
//
|
||||
val () =
|
||||
println! ("5*5 = ", times(5,5))
|
||||
val () =
|
||||
println! ("5^2 = ", power(5,2))
|
||||
val () =
|
||||
println! ("2^10 = ", power(2,10))
|
||||
val () =
|
||||
println! ("3^10 = ", power(3,10))
|
||||
//
|
|
@ -0,0 +1,139 @@
|
|||
pragma solidity ^0.4.11;
|
||||
|
||||
/// @title Voting with delegation.
|
||||
contract Ballot {
|
||||
// This declares a new complex type which will
|
||||
// be used for variables later.
|
||||
// It will represent a single voter.
|
||||
struct Voter {
|
||||
uint weight; // weight is accumulated by delegation
|
||||
bool voted; // if true, that person already voted
|
||||
address delegate; // person delegated to
|
||||
uint vote; // index of the voted proposal
|
||||
}
|
||||
|
||||
// This is a type for a single proposal.
|
||||
struct Proposal {
|
||||
bytes32 name; // short name (up to 32 bytes)
|
||||
uint voteCount; // number of accumulated votes
|
||||
}
|
||||
|
||||
address public chairperson;
|
||||
|
||||
// This declares a state variable that
|
||||
// stores a `Voter` struct for each possible address.
|
||||
mapping(address => Voter) public voters;
|
||||
|
||||
// A dynamically-sized array of `Proposal` structs.
|
||||
Proposal[] public proposals;
|
||||
|
||||
/// Create a new ballot to choose one of `proposalNames`.
|
||||
function Ballot(bytes32[] proposalNames) {
|
||||
chairperson = msg.sender;
|
||||
voters[chairperson].weight = 1;
|
||||
|
||||
// For each of the provided proposal names,
|
||||
// create a new proposal object and add it
|
||||
// to the end of the array.
|
||||
for (uint i = 0; i < proposalNames.length; i++) {
|
||||
// `Proposal({...})` creates a temporary
|
||||
// Proposal object and `proposals.push(...)`
|
||||
// appends it to the end of `proposals`.
|
||||
proposals.push(Proposal({
|
||||
name: proposalNames[i],
|
||||
voteCount: 0
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
// Give `voter` the right to vote on this ballot.
|
||||
// May only be called by `chairperson`.
|
||||
function giveRightToVote(address voter) {
|
||||
// If the argument of `require` evaluates to `false`,
|
||||
// it terminates and reverts all changes to
|
||||
// the state and to Ether balances. It is often
|
||||
// a good idea to use this if functions are
|
||||
// called incorrectly. But watch out, this
|
||||
// will currently also consume all provided gas
|
||||
// (this is planned to change in the future).
|
||||
require((msg.sender == chairperson) && !voters[voter].voted && (voters[voter].weight == 0));
|
||||
voters[voter].weight = 1;
|
||||
}
|
||||
|
||||
/// Delegate your vote to the voter `to`.
|
||||
function delegate(address to) {
|
||||
// assigns reference
|
||||
Voter sender = voters[msg.sender];
|
||||
require(!sender.voted);
|
||||
|
||||
// Self-delegation is not allowed.
|
||||
require(to != msg.sender);
|
||||
|
||||
// Forward the delegation as long as
|
||||
// `to` also delegated.
|
||||
// In general, such loops are very dangerous,
|
||||
// because if they run too long, they might
|
||||
// need more gas than is available in a block.
|
||||
// In this case, the delegation will not be executed,
|
||||
// but in other situations, such loops might
|
||||
// cause a contract to get "stuck" completely.
|
||||
while (voters[to].delegate != address(0)) {
|
||||
to = voters[to].delegate;
|
||||
|
||||
// We found a loop in the delegation, not allowed.
|
||||
require(to != msg.sender);
|
||||
}
|
||||
|
||||
// Since `sender` is a reference, this
|
||||
// modifies `voters[msg.sender].voted`
|
||||
sender.voted = true;
|
||||
sender.delegate = to;
|
||||
Voter delegate = voters[to];
|
||||
if (delegate.voted) {
|
||||
// If the delegate already voted,
|
||||
// directly add to the number of votes
|
||||
proposals[delegate.vote].voteCount += sender.weight;
|
||||
} else {
|
||||
// If the delegate did not vote yet,
|
||||
// add to her weight.
|
||||
delegate.weight += sender.weight;
|
||||
}
|
||||
}
|
||||
|
||||
/// Give your vote (including votes delegated to you)
|
||||
/// to proposal `proposals[proposal].name`.
|
||||
function vote(uint proposal) {
|
||||
Voter sender = voters[msg.sender];
|
||||
require(!sender.voted);
|
||||
sender.voted = true;
|
||||
sender.vote = proposal;
|
||||
|
||||
// If `proposal` is out of the range of the array,
|
||||
// this will throw automatically and revert all
|
||||
// changes.
|
||||
proposals[proposal].voteCount += sender.weight;
|
||||
}
|
||||
|
||||
/// @dev Computes the winning proposal taking all
|
||||
/// previous votes into account.
|
||||
function winningProposal() constant
|
||||
returns (uint winningProposal)
|
||||
{
|
||||
uint winningVoteCount = 0;
|
||||
for (uint p = 0; p < proposals.length; p++) {
|
||||
if (proposals[p].voteCount > winningVoteCount) {
|
||||
winningVoteCount = proposals[p].voteCount;
|
||||
winningProposal = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Calls winningProposal() function to get the index
|
||||
// of the winner contained in the proposals array and then
|
||||
// returns the name of the winner
|
||||
function winnerName() constant
|
||||
returns (bytes32 winnerName)
|
||||
{
|
||||
winnerName = proposals[winningProposal()].name;
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
= CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))
|
|
@ -0,0 +1,64 @@
|
|||
// http://www.ats-lang.org/
|
||||
(* Say Hello! once *)
|
||||
val () = print"Hello!\n"
|
||||
//
|
||||
(* Say Hello! 3 times *)
|
||||
val () = 3*delay(print"Hello!")
|
||||
val () = print_newline((*void*))
|
||||
//
|
||||
|
||||
//
|
||||
(* Build a list of 3 *)
|
||||
val xs = $list{int}(0, 1, 2)
|
||||
//
|
||||
val x0 = xs[0] // legal
|
||||
val x1 = xs[1] // legal
|
||||
val x2 = xs[2] // legal
|
||||
val x3 = xs[3] // illegal
|
||||
//
|
||||
|
||||
//
|
||||
extern
|
||||
fun{} f0 (): int
|
||||
extern
|
||||
fun{} f1 (int): int
|
||||
extern
|
||||
fun{} repeat_f0f1 (int): int
|
||||
//
|
||||
implement
|
||||
{}(*tmp*)
|
||||
repeat_f0f1(n) =
|
||||
if n = 0
|
||||
then f0()
|
||||
else f1(repeat_f0f1(n-1))
|
||||
// end of [if]
|
||||
//
|
||||
fun
|
||||
times (
|
||||
m:int, n:int
|
||||
) : int = // m*n
|
||||
repeat_f0f1 (m) where
|
||||
{
|
||||
implement f0<> () = 0
|
||||
implement f1<> (x) = x + n
|
||||
}
|
||||
//
|
||||
fun
|
||||
power (
|
||||
m:int, n:int
|
||||
) : int = // m^n
|
||||
repeat_f0f1 (n) where
|
||||
{
|
||||
implement f0<> () = 1
|
||||
implement f1<> (x) = m * x
|
||||
}
|
||||
//
|
||||
val () =
|
||||
println! ("5*5 = ", times(5,5))
|
||||
val () =
|
||||
println! ("5^2 = ", power(5,2))
|
||||
val () =
|
||||
println! ("2^10 = ", power(2,10))
|
||||
val () =
|
||||
println! ("3^10 = ", power(3,10))
|
||||
//
|
|
@ -0,0 +1,139 @@
|
|||
pragma solidity ^0.4.11;
|
||||
|
||||
/// @title Voting with delegation.
|
||||
contract Ballot {
|
||||
// This declares a new complex type which will
|
||||
// be used for variables later.
|
||||
// It will represent a single voter.
|
||||
struct Voter {
|
||||
uint weight; // weight is accumulated by delegation
|
||||
bool voted; // if true, that person already voted
|
||||
address delegate; // person delegated to
|
||||
uint vote; // index of the voted proposal
|
||||
}
|
||||
|
||||
// This is a type for a single proposal.
|
||||
struct Proposal {
|
||||
bytes32 name; // short name (up to 32 bytes)
|
||||
uint voteCount; // number of accumulated votes
|
||||
}
|
||||
|
||||
address public chairperson;
|
||||
|
||||
// This declares a state variable that
|
||||
// stores a `Voter` struct for each possible address.
|
||||
mapping(address => Voter) public voters;
|
||||
|
||||
// A dynamically-sized array of `Proposal` structs.
|
||||
Proposal[] public proposals;
|
||||
|
||||
/// Create a new ballot to choose one of `proposalNames`.
|
||||
function Ballot(bytes32[] proposalNames) {
|
||||
chairperson = msg.sender;
|
||||
voters[chairperson].weight = 1;
|
||||
|
||||
// For each of the provided proposal names,
|
||||
// create a new proposal object and add it
|
||||
// to the end of the array.
|
||||
for (uint i = 0; i < proposalNames.length; i++) {
|
||||
// `Proposal({...})` creates a temporary
|
||||
// Proposal object and `proposals.push(...)`
|
||||
// appends it to the end of `proposals`.
|
||||
proposals.push(Proposal({
|
||||
name: proposalNames[i],
|
||||
voteCount: 0
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
// Give `voter` the right to vote on this ballot.
|
||||
// May only be called by `chairperson`.
|
||||
function giveRightToVote(address voter) {
|
||||
// If the argument of `require` evaluates to `false`,
|
||||
// it terminates and reverts all changes to
|
||||
// the state and to Ether balances. It is often
|
||||
// a good idea to use this if functions are
|
||||
// called incorrectly. But watch out, this
|
||||
// will currently also consume all provided gas
|
||||
// (this is planned to change in the future).
|
||||
require((msg.sender == chairperson) && !voters[voter].voted && (voters[voter].weight == 0));
|
||||
voters[voter].weight = 1;
|
||||
}
|
||||
|
||||
/// Delegate your vote to the voter `to`.
|
||||
function delegate(address to) {
|
||||
// assigns reference
|
||||
Voter sender = voters[msg.sender];
|
||||
require(!sender.voted);
|
||||
|
||||
// Self-delegation is not allowed.
|
||||
require(to != msg.sender);
|
||||
|
||||
// Forward the delegation as long as
|
||||
// `to` also delegated.
|
||||
// In general, such loops are very dangerous,
|
||||
// because if they run too long, they might
|
||||
// need more gas than is available in a block.
|
||||
// In this case, the delegation will not be executed,
|
||||
// but in other situations, such loops might
|
||||
// cause a contract to get "stuck" completely.
|
||||
while (voters[to].delegate != address(0)) {
|
||||
to = voters[to].delegate;
|
||||
|
||||
// We found a loop in the delegation, not allowed.
|
||||
require(to != msg.sender);
|
||||
}
|
||||
|
||||
// Since `sender` is a reference, this
|
||||
// modifies `voters[msg.sender].voted`
|
||||
sender.voted = true;
|
||||
sender.delegate = to;
|
||||
Voter delegate = voters[to];
|
||||
if (delegate.voted) {
|
||||
// If the delegate already voted,
|
||||
// directly add to the number of votes
|
||||
proposals[delegate.vote].voteCount += sender.weight;
|
||||
} else {
|
||||
// If the delegate did not vote yet,
|
||||
// add to her weight.
|
||||
delegate.weight += sender.weight;
|
||||
}
|
||||
}
|
||||
|
||||
/// Give your vote (including votes delegated to you)
|
||||
/// to proposal `proposals[proposal].name`.
|
||||
function vote(uint proposal) {
|
||||
Voter sender = voters[msg.sender];
|
||||
require(!sender.voted);
|
||||
sender.voted = true;
|
||||
sender.vote = proposal;
|
||||
|
||||
// If `proposal` is out of the range of the array,
|
||||
// this will throw automatically and revert all
|
||||
// changes.
|
||||
proposals[proposal].voteCount += sender.weight;
|
||||
}
|
||||
|
||||
/// @dev Computes the winning proposal taking all
|
||||
/// previous votes into account.
|
||||
function winningProposal() constant
|
||||
returns (uint winningProposal)
|
||||
{
|
||||
uint winningVoteCount = 0;
|
||||
for (uint p = 0; p < proposals.length; p++) {
|
||||
if (proposals[p].voteCount > winningVoteCount) {
|
||||
winningVoteCount = proposals[p].voteCount;
|
||||
winningProposal = p;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Calls winningProposal() function to get the index
|
||||
// of the winner contained in the proposals array and then
|
||||
// returns the name of the winner
|
||||
function winnerName() constant
|
||||
returns (bytes32 winnerName)
|
||||
{
|
||||
winnerName = proposals[winningProposal()].name;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue