Skip to content

Instantly share code, notes, and snippets.

View belyaev-mikhail's full-sized avatar

Mikhail Belyaev belyaev-mikhail

  • SPBSTU
  • Saint-Petersburg, Russia
View GitHub Profile
data BinaryTree = EmptyTree
| Leaf Integer
| Node Integer BinaryTree BinaryTree
hasLeft :: BinaryTree -> Bool
hasLeft (EmptyTree) = False
hasLeft (Leaf _) = False
hasLeft (Node _ EmptyTree _) = False
hasLeft (Node _ _ _) = True
[ERROR] java.lang.IllegalStateException: Backend Internal error: Exception during code generation
Cause: Back-end (JVM) Internal error: Couldn't inline method call 'forEachOneBit' into
@org.junit.Test public final fun smokeTest(): kotlin.Unit defined in ru.spbstu.wheels.BitsTest
@Test
fun smokeTest() {
Bits(0b11001100000).forEachOneBit { bit ->
assertEquals(1, bit.popCount)
}
#include <iostream>
#include <string>
#include <vector>
#include <cassert>
#include <memory>
#define DECLARE_TUPLE_ACCESSORS_IN_STD(TYPE, SIZE) \
namespace std { \
template<> struct tuple_size<TYPE> { static constexpr const size_t value = SIZE; }; \
template<size_t N> struct tuple_element<N, TYPE> { using type = decltype(std::declval<TYPE>().get<N>()); }; \
  1. Дана пара отсортированных списков чисел lst1 и lst2. Необходимо вернуть отсортированный список, образованный объединением lst1 и lst2. Функцию sort использовать нельзя.
  2. Реализуйте тип данных, позволяющий задавать команды управления лентой вида "Влево на определённое число шагов", "Вправо на определённое число шагов", "Запись". Реализуйте функцию, которая принимает на вход список команд и начальную позицию и возвращает список позиций, на которых происходила запись.
  3. Дан список чисел. Необходимо посчитать число чётных и нечётных чисел в этом списке.
  4. Дан список чисел и функция f :: Int -> Int -> Int. Необходимо найти такую пару чисел (a,b) в списке, что f a b максимально.
  5. Дан список чисел, число n и функция f :: Int -> Int -> Int. Необходимо найти любую такую пару чисел (a,b) в списке, что f a b равно n.
  6. Даны два списка чисел, a и b. Нужно посчитать произведение всех попарных сумм элементов из a и b.
  7. Дано число n и функция f :: a -&gt; a. Необходимо вернуть

1 вариант

Problem 1

Дан список и два числа: m и n (0 < m < 1000). Необходимо заменить все элементы списка с индексами, кратными m, на n.

Пример:

changeEls [1, 2, 3, 4, 5] 2 7
> [7, 2, 7, 4, 7]
module Parsers where
import Text.Parsec hiding(digit)
type Parser a = Parsec String () a
digit :: Parser Char
digit = oneOf $ ['0'..'9']
number :: Parser Integer
const asciiWords = RegExp.prototype.exec.bind(/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g);
const hasUnicodeWord = RegExp.prototype.test.bind(
/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/
);
const unicodeWords = RegExp.prototype.exec.bind(/[a-z0-9]+|[A-Z][a-z0-9]+/g);
function* iterateExec(exec: ((string: string) => string[]), string: string): IterableIterator<string> {
var res: string[];
interface Rec<A>: (Rec<A>) -> A
inline fun <A> Rec(crossinline body: (Rec<A>) -> A) = object : Rec<A> {
override fun invoke(rec: Rec<A>) = body(rec)
}
fun <T> omega(body: Rec<T>): T = Rec<T> { f -> f(f) } (body)
fun <A> y (r: ((A) -> A, A) -> A) =
omega(Rec<(A) -> A> { f -> { it -> r({ x -> f(f)(x) }, it) } })
git init
git fetch https://github.com/Jetbrains/kotlin aa83ea22f30d00dc7dbc2f16590933a7ac8965e0 --depth 1
git reset --hard FETCH_HEAD
@belyaev-mikhail
belyaev-mikhail / warningGen.kt
Created May 6, 2018 16:53
Generate kotlinx.warnings main file from kotlin-compiler-nostrip
fun main(args: Array<String>): Unit = runBlocking<Unit> {
val warnings =
org.jetbrains.kotlin.diagnostics.Errors::class.java.declaredFields
.map { it.name to it.get(null) as? DiagnosticFactory<*> }
.filter { it.second != null }
.filter { it.second?.severity == Severity.WARNING }
.map { it.first }
.map { """const val $it = "$it" """ }
.joinToString("\n")