mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 00:34:20 +03:00
Обновлены примеры
This commit is contained in:
parent
2a94fc1759
commit
8a000cd6c2
@ -1,5 +1,5 @@
|
|||||||
`extended indetifier variable` = 9
|
`extended identifier variable` = 9
|
||||||
println `extended indetifier variable`
|
println `extended identifier variable`
|
||||||
|
|
||||||
`(。◕‿◕。)` = 20
|
`(。◕‿◕。)` = 20
|
||||||
`ʕ•ᴥ•ʔ` = 30
|
`ʕ•ᴥ•ʔ` = 30
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
use "std"
|
use ["std", "types", "math"]
|
||||||
use "types"
|
|
||||||
use "math"
|
|
||||||
|
|
||||||
println "Operator overloading"
|
println "Operator overloading"
|
||||||
def `::`(v1, v2) = string(v1) + string(v2)
|
def `::`(v1, v2) = string(v1) + string(v2)
|
||||||
@ -11,7 +9,7 @@ def `^`(v1, v2) = pow(v1[0], v2[0])
|
|||||||
print "[2] ^ [7] = "
|
print "[2] ^ [7] = "
|
||||||
println [2] ^ [7]
|
println [2] ^ [7]
|
||||||
|
|
||||||
def `..`(a, b) = range(a, b - 1)
|
def `..`(a, b) = range(a, b)
|
||||||
def `**`(a, b) = int(pow(a, b))
|
def `**`(a, b) = int(pow(a, b))
|
||||||
for y : 1 .. 10 {
|
for y : 1 .. 10 {
|
||||||
println sprintf("2 ^ %d = %d", y, 2 ** y)
|
println sprintf("2 ^ %d = %d", y, 2 ** y)
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
use "std"
|
use "std"
|
||||||
for b : range(8)
|
|
||||||
|
// header
|
||||||
|
print " " * 4
|
||||||
|
for b : range(9)
|
||||||
print sprintf(" 4%dm ", b)
|
print sprintf(" 4%dm ", b)
|
||||||
println ""
|
println ""
|
||||||
for f : range(30, 38) {
|
|
||||||
|
for f : range(30, 39) {
|
||||||
for s : ["", "1;"] {
|
for s : ["", "1;"] {
|
||||||
print sprintf("%4sm", s+f)
|
print sprintf("%4sm", s+f)
|
||||||
print sprintf(" \u001B[%sm%s\u001B[0m", s+f, "gYw ")
|
print sprintf(" \u001B[%sm%s\u001B[0m", s+f, "gYw ")
|
||||||
@ -12,15 +16,3 @@ for f : range(30, 38) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*use "functional"
|
|
||||||
stream(range(30, 38))
|
|
||||||
.flatMap(def(f) = [[f, ""], [f, "1;"]])
|
|
||||||
.forEach(def(a) {
|
|
||||||
extract(f, s) = a
|
|
||||||
print sprintf("%4sm", s+f)
|
|
||||||
print sprintf(" \u001B[%sm%s\u001B[0m", s+f, "gYw ")
|
|
||||||
for b : range(8)
|
|
||||||
print sprintf(" \u001B[4%s;%sm%s\u001B[0m", b, s+f, " gYw ")
|
|
||||||
println ""
|
|
||||||
})
|
|
||||||
*/
|
|
||||||
|
@ -13,7 +13,7 @@ enterTextLabel = newLabel("Enter a text", SwingConstants.CENTER)
|
|||||||
|
|
||||||
textField = newTextField()
|
textField = newTextField()
|
||||||
textField.addKeyListener(def(type, event) {
|
textField.addKeyListener(def(type, event) {
|
||||||
lengthLabel.setText(length(textField.getText()))
|
lengthLabel.setText(textField.getText().length)
|
||||||
})
|
})
|
||||||
|
|
||||||
statusPanel = newPanel()
|
statusPanel = newPanel()
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
use "std"
|
use ["std", "http", "forms"]
|
||||||
use "http"
|
|
||||||
use "forms"
|
|
||||||
|
|
||||||
chatHistory = newLabel("<html>Чат с самоботом<br>")
|
chatHistory = newLabel("<html>Чат с самоботом<br>")
|
||||||
messageField = newTextField()
|
messageField = newTextField()
|
||||||
@ -13,7 +11,7 @@ def onSend() {
|
|||||||
if (length(text) == 0) return 0
|
if (length(text) == 0) return 0
|
||||||
messageField.setText("")
|
messageField.setText("")
|
||||||
chatHistory.setText(chatHistory.getText() + "<br><b>вы</b> > " + text)
|
chatHistory.setText(chatHistory.getText() + "<br><b>вы</b> > " + text)
|
||||||
thread(::http, "http://annimon.com/json/bot.php", "POST", {"text": text}, def(answer) {
|
thread(::http, "https://annimon.com/json/bot.php", "POST", {"text": text}, def(answer) {
|
||||||
chatHistory.setText(chatHistory.getText() + "<br><b>бот</b> > " + answer)
|
chatHistory.setText(chatHistory.getText() + "<br><b>бот</b> > " + answer)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -20,18 +20,18 @@ def calculate(expression) {
|
|||||||
|
|
||||||
def parseNumber() {
|
def parseNumber() {
|
||||||
buffer = ""
|
buffer = ""
|
||||||
while (pos < len && isDigit(charAt(expression, pos))) {
|
while (pos < len && isDigit(expression.charAt(pos))) {
|
||||||
buffer += toChar(charAt(expression, pos))
|
buffer += toChar(expression.charAt(pos))
|
||||||
pos++
|
pos++
|
||||||
}
|
}
|
||||||
return number(buffer)
|
return number(buffer)
|
||||||
}
|
}
|
||||||
|
|
||||||
def parseOperation() {
|
def parseOperation() {
|
||||||
while (pos < len && !arrayKeyExists(toChar(charAt(expression, pos)), operations)) {
|
while (pos < len && !arrayKeyExists(toChar(expression.charAt(pos)), operations)) {
|
||||||
pos++
|
pos++
|
||||||
}
|
}
|
||||||
return operations[toChar(charAt(expression, pos++))]
|
return operations[toChar(expression.charAt(pos++))]
|
||||||
}
|
}
|
||||||
|
|
||||||
num1 = parseNumber()
|
num1 = parseNumber()
|
||||||
@ -43,4 +43,4 @@ def calculate(expression) {
|
|||||||
println calculate("2+2")
|
println calculate("2+2")
|
||||||
println calculate("400*16")
|
println calculate("400*16")
|
||||||
println calculate("400/160")
|
println calculate("400/160")
|
||||||
println calculate("3>4")
|
println calculate("3>4")
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
use "std"
|
use ["std", "functional"]
|
||||||
use "functional"
|
|
||||||
|
|
||||||
println "x, square(x), cube(x) for even numbers"
|
println "x, square(x), cube(x) for even numbers"
|
||||||
data = [1,2,3,4,5,6,7,8,9]
|
data = [1,2,3,4,5,6,7,8,9]
|
||||||
@ -23,4 +22,4 @@ def reverse(container) {
|
|||||||
result[size - i - 1] = container[i]
|
result[size - i - 1] = container[i]
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
use "std"
|
use ["std", "http", "json", "functional", "date"]
|
||||||
use "http"
|
|
||||||
use "json"
|
|
||||||
use "functional"
|
|
||||||
|
|
||||||
header = "* Prints current GitHub timeline *"
|
header = "* Prints current GitHub timeline *"
|
||||||
println "*" * length(header)
|
println "*" * header.length
|
||||||
println header
|
println header
|
||||||
println "*" * length(header)
|
println "*" * header.length
|
||||||
|
|
||||||
// Executes in main thread
|
// Executes in main thread
|
||||||
//http("https://api.github.com/events", def(r) {
|
//http("https://api.github.com/events", def(r) {
|
||||||
@ -19,7 +16,7 @@ thread(::http, "https://api.github.com/events", def(r) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
def show_github_events(event) {
|
def show_github_events(event) {
|
||||||
println event.created_at
|
println event.created_at.formatTzDate()
|
||||||
println "User: https://github.com/" + event.actor.login
|
println "User: https://github.com/" + event.actor.login
|
||||||
println github_event_type(event)
|
println github_event_type(event)
|
||||||
println "-" * 50
|
println "-" * 50
|
||||||
@ -41,3 +38,6 @@ def github_event_type(event) {
|
|||||||
case type : type + " on " + repo
|
case type : type + " on " + repo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def formatTzDate(str) = formatDate(parseTzDate(str), newFormat("yyyy-MM-dd HH:mm:ss"))
|
||||||
|
def parseTzDate(str) = parseDate(str, newFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"))
|
||||||
|
Loading…
Reference in New Issue
Block a user