- 1
- 2
- 3
- 4
- 5
- 6
- 7
[■,■,■,■].map(■→●) ⇒ [●,●,●,●]
[■,●,■,▲].filter(■→true) ⇒ [■,■]
[■,●,■,▲].find(●→true) ⇒ ●
[■,●,■,▲].findIndex(●→true) ⇒ 1
[■,●,■,▲].fill(●) ⇒ [●,●,●,●]
[■,●,■,▲].some(●→true) ⇒ true
[■,●,■,▲].every(●→true) ⇒ false
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+6
[■,■,■,■].map(■→●) ⇒ [●,●,●,●]
[■,●,■,▲].filter(■→true) ⇒ [■,■]
[■,●,■,▲].find(●→true) ⇒ ●
[■,●,■,▲].findIndex(●→true) ⇒ 1
[■,●,■,▲].fill(●) ⇒ [●,●,●,●]
[■,●,■,▲].some(●→true) ⇒ true
[■,●,■,▲].every(●→true) ⇒ false
https://twitter.com/rauschma/status/1398668839177568259
Немного визуализации для демонстрирования работы с массивами
0
function t_undef(s?: string)
{
assert((s == undefined) == true, "is not undefined")
assert((s != undefined) == false, "is undefined")
assert((s > undefined) == false, "not >");
assert((s < undefined) == false, "not <");
assert((s >= undefined) == true, "not >=");
assert((s <= undefined) == true, "not <=");
}
function t_val(s?: string)
{
assert((s == undefined) == false, "is undefined")
assert((s != undefined) == true, "is not undefined")
assert((s > undefined) == true, ">");
assert((s < undefined) == false, "<");
assert((s >= undefined) == true, ">=");
assert((s <= undefined) == false, "<=");
}
function f(s?: string)
{
print(s == undefined, s != undefined, s > undefined, s < undefined, s >= undefined, s <= undefined);
}
function main() {
f();
t_undef();
f("asd");
t_val("asd");
}
внеочередной говнокод для работы с андефами. А ваш говно-компилятор умеет так (особенно С и С++)
гы гы
0
function main()
{
let a: [ name: string, age: number ];
a.name = "Test1";
print (a.name, " << end (should be value Test1)");
let b: [ name: string, age: number ] = [ "user", 10.0 ];
print (b.name, b.age);
let c: [ user: [ name: string, age: number ], type: number ] = [ [ "user2", 11.0 ], 1.0 ];
print (c.user.name, c.user.age, c.type);
print (c.user.name);
c.user.name = "Test2";
print (c.user.name, " << end (should be value Test2)");
}
Продолжаем будни говнокомпилятора. а ваш компилятор умеет делать проименнованные таплы (tuples)?
0
enum En {
A,
B,
C,
D = 4200,
E,
}
enum En2 {
D0 = En.D,
D1,
D2 = 1,
}
function main()
{
const a = En.A;
print (a, En.B, En.C, En.D);
print (En2.D0, En2.D1, En2.D2);
}
output: >>
0 1 2 4200
4200 1 1
Ну что.. учись "С" как enum-ы делать надо....
0
function main()
{
let a: [string, number] = ["asd", 1.0];
print(a[0], a[1]);
const b: [string, number] = ["asd", 1.0];
print(b[0], b[1]);
const c = ["asd", 1.0];
print(c[0], c[1]);
}
Продолжаем будни говнописания говнокомпилятора. Хотел спросить а ваш компилятор может так, но думаю может. В кратце - это работа с таплами(tuples) а не с масивами :)
+1
function main() {
const x = 21;
let s = "foo";
const r = `a${x * 2}X${s}X${s}Z`;
print(r);
}
Продолжаем будни говно-писания говно-компилятора на LLVM. серия - а ваш говно-компилятор может так...
и результат работы
>>
C:\temp\MLIR_to_exe>out.exe
a42XfooXfooZ
0
// Define the man site module
define(function(require) {
// Require function that runs when button is clicked
var run = require('./run').run;
// Where the application starts its work
var genTextButton = document.getElementById("button-gen-text");
genTextButton.onclick = run;
});
define(function(require) {
// Require value error
var ValueError = require('./errors/value_errors').ValueError;
// Require EmptyListError
var EmptyListError = require('./errors/property_errors').EmptyListError;
// Require functions that returns data for text generation
var getData = require('./utils/get_data');
var getTextLength = getData.getTextLength;
var getTemplateList = getData.getTemplateList;
var getWordList = getData.getWordList;
var getStyleOption = getData.getStyleOption;
// Require function for setting output text
var makeText = require('./utils/set_text');
// Require function for validating form and validate form
var validateForm = require('./utils/validateForm');
validateForm({
formId : 'form-text-gen',
inputErrorClass : 'input-error',
formInvalidClass : 'form-invalid'
});
// Runs tasks for text generation
var run = function() {
try {
var textLength = getTextLength();
var templateList = getTemplateList();
var wordList = getWordList();
var styleOption = getStyleOption();
makeText({
styleOption : styleOption,
textLength : textLength,
templateList : templateList,
wordList : wordList
});
} catch (error) {
if (error instanceof ValueError) {
console.log(error.stack);
} else if (error instanceof EmptyListError) {
console.log(error.stack);
} else {
throw error;
}
}
}
return {
run : run
}
});
Божественная кнопка
0
function display(id:number, name:string)
{
print("Id = " + id + ", Name = " + name);
}
function main() {
display(1, "asd");
}
А ваш говно компайлер умеет так делать?
>> Output:
Id = 1., Name = asd
+1
// Define the module
define(function(require) {
// Require empty list error
var EmptyListError = require('../errors/property_errors').EmptyListError;
// Character-rank list class
function WeightedList(/* ...keys */) {
this._total = 0;
this._generateList.apply(this, arguments);
}
WeightedList.prototype._generateList = function() {
var collection;
if (typeof arguments[0] == 'object') {
collection = arguments[0];
} else {
collection = arguments;
}
for (var i = 0; i < collection.length; i++) {
this[collection[i]] = this[collection[i]] === undefined ? 1 : this[collection[i]] + 1;
this._total++;
}
}
WeightedList.prototype.getRandomKey = function() {
if (this._total < 1)
throw new EmptyListError();
var num = Math.random();
var lowerBound = 0;
var keys = Object.keys(this);
for (var i = 0; i < keys.length; i++) {
if (keys[i] != "_total") {
if (num < lowerBound + this[keys[i]] / this._total) {
return keys[i];
}
lowerBound += this[keys[i]] / this._total;
}
}
return keys[keys.length - 1];
};
WeightedList.prototype.increaseRank = function(key) {
if (key !== undefined && key != "_total") {
if (this[key] !== undefined) {
this[key]++;
} else {
this[key] = 1;
}
this._total++;
}
};
WeightedList.prototype.clearRanks = function() {
var keys = Object.keys(this);
for (var i = 0; i < keys.length; i++) {
if (keys[i] != "_total") {
this._total -= this[keys[i]] - 1;
this[keys[i]] = 1;
}
}
};
return WeightedList;
});
Вот почему я за четкое разделение объектов/структур и хэшей (ассоциативных массивов).
0
function test3()
{
const a = 10.5
switch (a)
{
case 10.5:
print("cool. 10.5");
break;
}
}
function test3()
{
switch ("kokoko")
{
case "kokoko":
print("pituh");
break;
}
}
Продолжаем говнокомпилить...
А ваш С такое прокомпилирует? мой - запросто :)